开发者

Bing search API using Jsonp not working, invalid label

Struggling with Bi开发者_Python百科ng's json request (bing search, not map), I am getting an error back that says 'Invalid Label'

My query url is:

var bingurl="http://api.search.live.net/json.aspx?Appid=##APIKEY##&query=Honda&sources=web";


 $.ajax({
            type: "GET",
            url: bingurl,
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "jsonp",
            success: function(data) {

                $callBack(data);
            },
            error: function(msg) {
                alert("error" + msg);
            }
        });

Firebug reports 'invalid label' and then dumps the json response.

No idea what is wrong? help appreciated.


The Bing API URL you posted isn't JSONP, it's plain JSON.

JSONP is interpreted as raw JavaScript, in which case a JSON object's {"something": ... syntax is not an object literal, but a block statement with a label whose name contains quotes (hence the invalidness).

As I understand it, if you want JSONP from Bing you have to tell it that by passing in parameters ...&JsonType=callback&JsonCallback=(name of global callback function).

(I'm also not sure what data: "{}" will do, but I don't think anything good.)


Just in the spirit of keeping things up-to-date, the newer Bing REST API does support jsonp, you just have to make sure that the "callback" parameter is "jsonp". In jQuery just change the jsonp attribute in your $.ajax() call to "jsonp" to make this work.

$.ajax({
    url: 'http://some.domain.com',
    dataType: 'jsonp',
    jsonp: 'jsonp'
});`

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜