为什么此 JSONP 源会引发“意外令牌”错误

Why is this JSONP feed throwing "Unexpected Token" error?

本文关键字:令牌 意外 意外令牌 错误 JSONP 为什么      更新时间:2023-09-26

我正在尝试通过jQuery获取这个远程JSONP提要。

每次尝试时,我都会收到"未捕获的语法错误:意外令牌("或类似错误。

我做错了什么还是 JSONP 数据中的某些内容格式/转义不正确?

小提琴:http://jsfiddle.net/callmeed/d3tSX/2/

var _event_url = "http://calvaryslo.onthecity.org/plaza/*events*?format=json";
$.ajax({
    type: 'GET',
    url: _event_url,
    dataType: 'jsonp',
    success: function(msg) {
        alert(msg.length);
    }
});​

因为此提要返回的是 JSON,而不是 javascript 函数调用:

[{Query172031345640518702567_1334079878875({...

但它应该是:

Query172031345640518702567_1334079878875({...

我不知道此服务是否在您的控制之下,您可以更改它,或者您只需要在 URL 中添加一些参数(查看手册)。

此外,响应的内容类型应该是 application/javascript ,而不是text/json

如果使用dataType: 'jsonp' JQuery 会将 callback url 参数附加到请求中。此参数的值必须是服务器返回的回调函数的函数名称。正如 Eugene Retunsky 已经提到的那样,这是格式不正确的,而且服务器代码似乎省略了函数名称的第一个字符jQuery_674...因此变得Query_674...这将不起作用。