3

挣扎于 Bing 的 json 请求(bing 搜索,而不是地图),我收到一条错误消息,上面写着“无效标签”

我的查询网址是:

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 报告“无效标签”,然后转储 json 响应。

不知道出了什么问题?帮助表示赞赏。

4

2 回答 2

7

您发布的 Bing API URL 不是 JSONP,而是纯 JSON。

JSONP 被解释为原始 JavaScript,在这种情况下,JSON 对象的{"something": ...语法不是对象文字,而是带有名称包含引号的标签的块语句(因此无效)。

据我了解,如果您想要来自 Bing 的 JSONP,您必须通过传入参数...&JsonType=callback&JsonCallback=(全局回调函数的名称)来告诉它。

(我也不确定data: "{}"会做什么,但我不认为有什么好处。)

于 2010-05-13T20:00:08.150 回答
4

只是本着保持最新的精神,较新的 Bing REST API确实支持 jsonp,您只需确保“回调”参数是“jsonp”。在 jQuery 中,只需将 $.ajax() 调用中的 jsonp 属性更改为“jsonp”即可。

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

于 2011-03-16T21:24:11.330 回答