我正在尝试使用 jQuery 1.7 进行 jsonp 调用,但是当调用返回时,我收到以下错误:
未捕获的类型错误: 对象函数 ( 响应 ) { 响应容器 = [ 响应 ]; } 没有方法 'json'
在检查返回的数据时,我注意到".json"被附加到回调函数名称中:
jQuery17206211688306648284_1336426518269.json({"..."})
下面是发出请求的代码:
$.ajax({
url: "...",
dataType: 'jsonp',
success: function(data) {
return console.log(data);
}
});
答:
正如 adeneo 所说,服务器试图指定"json"的回调函数,这是通过在 $.ajax 调用上设置以下参数来处理的:
jsonpCallback: 'json'
jQuery的$.ajax函数会自动向jsonp请求添加一个回调函数,但看起来您看到的json()
函数是由服务器添加的,但您可以尝试:
$.ajax({
url: "...",
dataType: 'jsonp',
jsonp: false,
success: function(data) {
return console.log(data);
}
});
禁用jQuery自动回调的事情,或者只是创建一个名为json()
的空可链接函数