0

我正在执行这个:

$.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函数中得到未定义的数据。我还注意到,在控制台中,我收到一条关于语句之前缺少分号的错误消息。当我单击右侧的链接时,我看到了我正在尝试获取的 JSON 结构。

  1. 我在通话中错过了什么?
  2. 如何将请求的内容放入我的 JS 代码中?

管理员声称服务器作为 JSON 数据提供者公开并且它应该可以工作。我自己还没有验证过,但我必须假设是这样。

4

1 回答 1

1

jsonpCallback选项$.ajax允许您指定或生成用于 JSONP 回调的函数的名称。这不是实际的回调。从文档中:

jsonpCallback

类型:StringFunction()

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

(我的重点)

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

于 2013-11-01T08:28:34.340 回答