简介
JSONP,或带有 Padding 的 JSON,是一种有助于数据交换的 JSON 扩展不同来源的网站之间。它的创建是为了规避浏览器的跨源资源共享 (CORS) 限制。
概念
当网站尝试从具有不同来源的另一个网站访问资源时,浏览器应用CORS限制以防止安全漏洞。 JSONP 通过使用不受 CORS 限制的脚本标签来利用此机制中的漏洞。
JSONP 的工作原理
要使用 JSONP,客户端网站包含一个指定回调函数并向服务器网站发送请求的脚本,如下所示:
http://www.example.net/sample.aspx?callback=mycallback
服务器网站以 JSON 响应数据包裹在指定的回调函数中,如下所示:
mycallback({ foo: 'bar' });
客户端网站定义了回调函数,该回调函数在脚本加载时执行:
mycallback = function(data){ alert(data.foo); };
解决跨源问题
JSONP 允许通过使用脚本标签绕过 CORS 限制进行跨源数据传输。这使得网站即使托管在不同的域上也可以相互通信。
用例
JSONP 在 CORS 不可用的情况下很有用,例如:
以上是JSONP如何解决跨源数据传输问题?的详细内容。更多信息请关注PHP中文网其他相关文章!