Paramer发送到jsonpCallback函数undefined

时间:2013-11-01 08:19:33

标签: jquery ajax json jsonp cors

我正在执行此操作:

$.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结构。

  1. 我在电话中错过了什么?
  2. 如何将请求的内容放入我的JS代码中?
  3. 管理员声称服务器作为JSON数据提供者公开,它应该可以工作。我没有证实自己,但我必须假设它是这样。

1 个答案:

答案 0 :(得分:1)

$.ajaxjsonpCallback选项允许您指定或生成要用于JSONP回调的函数的名称。这不是实际的回调。来自文档:

  

jsonpCallback

     

输入:StringFunction()

     

为JSONP请求指定回调函数名称 。将使用此值代替jQuery自动生成的随机名称。最好让jQuery生成一个唯一的名称,因为它可以更容易地管理请求并提供回调和错误处理。如果要为GET请求启用更好的浏览器缓存,可能需要指定回调。从jQuery 1.5开始,你也可以使用一个函数进行这个设置,在这种情况下,jsonpCallback的值被设置为该函数的返回值。

(我的重点)

如果您只是从调用中删除该选项,jQuery将自动为您生成一个唯一的名称,并使用反序列化的JSONP数据调用您的success函数。