为什么这个JSONP feed会抛出“Unexpected Token”错误?

时间:2012-04-10 17:41:08

标签: javascript jquery json jsonp

我正试图通过jQuery抓取this remote JSONP feed

每次尝试时,都会收到“Uncaught SyntaxError:Unexpected token(”或类似内容)的错误。

我做错了什么或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);
    }
});​

2 个答案:

答案 0 :(得分:4)

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

[{Query172031345640518702567_1334079878875({...

但它应该是:

Query172031345640518702567_1334079878875({...

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

此外,回复的内容类型应为application/javascript,而不是text/json

答案 1 :(得分:0)

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