自定义框,包含来自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));