4

我只是想知道如果我使用 JSONP,在 jQuery 的 getJSON 函数中是否有一个回调函数成功。

从文档中:

http://api.jquery.com/jQuery.getJSON/

jQuery.getJSON( url [, data] [, success(data, textStatus, jqXHR)] )

“成功”功能在成功的 JSON 响应后触发。

但是,如果我们在 JSONP 响应中使用函数回调的 JSONP,是否需要“成功”函数?

我猜不是,但我在页面上找不到任何信息来确认它。如果有理由使用“成功”功能,我只是不想忽视某种安全问题。

谢谢!

4

2 回答 2

2

jQuery 自动在全局窗口对象上设置自己的回调函数(使用自动生成的名称)并替换“?” 在“回调=?” 与函数的名称。该回调函数调用你的。

这意味着您可以只将匿名函数传递给 jQuery,而不必确保您不会两次使用相同的函数名称,就像使用 jQuery 的普通 AJAX 请求一样。

来自jQuery.ajax() 文档的相关引用:

最好让 jQuery 生成一个唯一的名称,因为这样可以更轻松地管理请求并提供回调和错误处理。当您想要启用更好的 GET 请求浏览器缓存时,您可能需要指定回调。

于 2012-12-27T12:12:35.627 回答
0

当然,您不必使用成功回调,但我可以想到一个很好的用途——单一职责。

通过 JSONP url 传递的回调函数应该只处理解析 JSON 和动态更改页面,而 jQuery 的成功回调可用于执行与请求本身相关的其他任务,而不是与接收到的数据相关的任务。

于 2012-12-27T12:13:02.167 回答