我尝试使用搜索框构建网页。我想从Bing获取自动完成选项(例如)。
可以通过以下方式从bing获得自动完成功能:
http://api.bing.com/osjson.aspx?query=YOUR_QUERY
我用自动完成小部件编写了一些代码,要求将json作为jsonp,并且我成功地看到(在Fiddler中)json到达。但是因为它只是作为json而不是以所需的格式到达,所以我得到了parseError。 (我在错误函数中看到它。未调用成功函数)
我的代码中的相关部分是:
$( "#mySesearchBox" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: "http://api.bing.com/osjson.aspx?query=" + request.term,
dataType: "jsonp",
...
有没有办法克服这个问题?
我想过运行一些会得到这样查询的服务器,会要求Bing的json并以所需的格式进行响应。但是,我更喜欢更简单的解决方案。
有什么建议吗?
答案 0 :(得分:3)
完整的工作演示:http://jsfiddle.net/LxXJz/
这使用:http://api.bing.net/qson.aspx
或
在这里你去"测试"喜欢这个演示:http://jsfiddle.net/zNUBc/
轻弹你的整个代码或小提琴我可能会为你解决:)
希望这个演示可以帮助你。
<强>码强>
var url = 'http://api.bing.com/osjson.aspx?JsonType=callback&JsonCallback=?';
$.getJSON(url, {
query: 'hulk'
}, function (data) {
document.write(data)
});
更新 16小时后:)
以下是使用http://api.bing.com/osjson.aspx
的解决方案演示=&gt; http://jsfiddle.net/pW6LZ/
仔细看看这个screeshot:
答案 1 :(得分:0)
bing更新后更新的代码:
success: function (data) {
console.log(data);
var suggestions = [];
$.each(data[1], function (i, val) {
suggestions.push(val);
});
//This returns the top 5 suggestions, instead of a list of over 20 suggestions.
response(suggestions.slice(0, 5));