0

这是一个以数组形式返回结果的 API,用于自动建议

例如。如果我查询“google”,我会得到如下结果

["google","google maps","google translate","google earth","google images","google docs","google voice","google scholar","google chrome","google calendar",]

你可以在这里自己尝试

这是我用来查询此 API 的代码,但它似乎没有返回结果。

是我正在使用的代码

     $(function() {

    $( "#city" ).autocomplete({
        source: function( request, response ) {
            $.ajax({
                url: "q.php",
                dataType: "json",
                data: {
                    "q" : request.term
                },
                success: function( data ) {
                    response(data[1]);
                }
            });
        },
        minLength: 2
    });
});

我不明白我在代码中哪里出错了请纠正我!因为它似乎不像我想要的那样工作

编辑:从同一服务器访问数据

4

3 回答 3

1

您忘记在小提琴中添加 jquery-ui 库。但是如果你这样做,代码无论如何都不会工作,因为你不能通过 ajax 请求访问来自另一个域的数据。仅来自同一域的 js 代码执行。

于 2012-04-06T12:26:26.180 回答
0

您可以在此处阅读有关在跨域环境中使用 jQuery 自动完成功能的信息:http: //1300grams.com/2009/08/17/jquery-autocomplete-with-json-jsonp-support-and-overriding-the-default-search-参数-q/

您还需要将 jquery.autocomplete.js 添加到您的 jsFiddle 环境中。

于 2012-04-06T12:36:31.420 回答
0

这可能会有所帮助

$(document).ready(function() {
$.getJSON('http://twitter.com/users/usejquery.json?callback=?', function(json) { //get information about the user usejquery from twitter api
$('#twitter_followers').text(json.followers_count); //get the follower_count from the json object and put it in a span
});
});

寻找称为跨域ajax 的东西。 http://usejquery.com/posts/the-jquery-cross-domain-ajax-guide

于 2012-04-06T12:30:03.527 回答