jQu*_*ast 5 javascript jquery autocomplete
我正在尝试检索雅虎自动完成.
雅虎的JSON网址是:http://ff.search.yahoo.com/gossip?output = fxjson&command = query
所以我有:
$("selector").autocomplete({
source: function( request, response ) {
$.ajax({
url: "http://ff.search.yahoo.com/gossip",
dataType: "jsonp",
data: {
"output" : "fxjson",
"command" : request.term
},
success: function( data ) {
response(data[1])
}
})
}
});
Run Code Online (Sandbox Code Playgroud)
这是一个例子:http://jsfiddle.net/yQbdb/
有人可以发现错误或我做错了吗?它应该工作.
谢谢
设置output为jsonp对我有用。
请参阅示例查询以了解输出的结构。
解释如下。
代码在这里。
$("#wd6450").autocomplete({
source: function(request, response) {
$.ajax({
url: "http://ff.search.yahoo.com/gossip",
dataType: "jsonp",
data: {
"output": "jsonp",
"command": request.term
},
success: function(data) {
var suggestions = [];
// for each element in the data.gossip.results array ...
$.each(data.gossip.results, function(i, val) {
// .. push the value of the key inside our array
suggestions.push(val.key);
});
// call response with our collected values
response(suggestions);
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
解释:
通过使用dataType: "jsonp"jQuery,期望输出格式为 JSONP。output: "fxjson"当您使用URL从代码中进行调用时,看起来像这样,但您可以看到输出不是有效的 JSONP,因为未调用回调。
另一方面,当您指定output: "jsonp"查询时,如下所示,并且您可以看到输出是有效的 JSONP - 调用了回调。
您在评论中链接了一个亚马逊示例。$.ajax()调用那里将尝试这样的URL 。Amazon Web 服务的输出是有效的 JSONP,因为回调是使用所有数据调用的。
所以结果是:如果您通过配置在 URL 中提供参数,Yahoo Webservices 将返回JSONP?output=jsonp格式。亚马逊的网络服务默认返回此格式,无需任何额外参数。这是特定于 Web 服务的配置,必须查阅其文档或其他相关资源。$.ajax()output: "jsonp"
有关 JSONP 的信息可在此处获取。
| 归档时间: |
|
| 查看次数: |
1122 次 |
| 最近记录: |