我正试图通过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);
}
});
答案 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...
,这将无效。