我正在执行此操作:
$.ajax({
url: url,
dataType: 'jsonp',
jsonpCallback: function (data) { alert("jsonp call-back: " + data); },
success: function (a, b, c, d) { alert("call ok"); },
error: function (a, b, c, d) { alert(a.state() + " " + b + " " + c + " " + d); }
});
问题是我在 jsonpCallback 函数中得到数据 undefined 。我还注意到在控制台中,我收到一条关于在语句之前丢失分号的错误消息。当我点击右边的链接时,我看到了我想要获得的JSON结构。
管理员声称服务器作为JSON数据提供者公开,它应该可以工作。我没有证实自己,但我必须假设它是这样。
答案 0 :(得分:1)
$.ajax
的jsonpCallback
选项允许您指定或生成要用于JSONP回调的函数的名称。这不是实际的回调。来自文档:
jsonpCallback
输入:
String
或Function()
为JSONP请求指定回调函数名称 。将使用此值代替jQuery自动生成的随机名称。最好让jQuery生成一个唯一的名称,因为它可以更容易地管理请求并提供回调和错误处理。如果要为GET请求启用更好的浏览器缓存,可能需要指定回调。从jQuery 1.5开始,你也可以使用一个函数进行这个设置,在这种情况下,jsonpCallback的值被设置为该函数的返回值。
(我的重点)
如果您只是从调用中删除该选项,jQuery将自动为您生成一个唯一的名称,并使用反序列化的JSONP数据调用您的success
函数。