JSONP的getJSON回调的重点是什么?

时间:2012-12-27 12:03:34

标签: jquery ajax json jsonp getjson

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

来自文档:

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

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

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

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

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

谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

jQuery.ajax() documentation的相关引用:

  

最好让jQuery生成一个唯一的名称,因为它可以更容易地管理请求并提供回调和错误处理。如果要为GET请求启用更好的浏览器缓存,可能需要指定回调。

答案 1 :(得分:0)

当然你不必使用成功回调,但我可以想到它的好用 - 单一责任。

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