自定义框,包含来自Google / Bing的自动填充function。 有没有办法读取收到的json文件?
我尝试使用搜索框构建网页。 我想从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,并会以所需的格式进行响应。 但是,我更喜欢更简单的解决方案。
任何建议?
完整的工作演示: http : //jsfiddle.net/LxXJz/
这使用: http : //api.bing.net/qson.aspx
要么
在这里你像这个演示 “测试”: http : //jsfiddle.net/zNUBc/
-
.getJSON
: http :.getJSON
轻弹你的整个代码,或者小提琴,我可能会为你解决:)
希望这个演示可以帮助你。
码
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
演示=> http://jsfiddle.net/pW6LZ/
仔细看看这个screeshot:
更新后的更新代码由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));