Asynchronous JavaScript and XML(Ajax)是目前 Web 开发关键技术之一,允许客户端 JavaScript 经过 HTTP 与效劳器停止交互。阅读器的平安模型规则了 XMLHttpRequest、frames 等必需在相反域名下才干停止通讯。这就是所谓的“同源战略限制”。

为了 Web 运用的平安,同源战略并不是坏东西,但当我们真的需求央求其他域名下的数据时,这个战略确实形成了费事。
克制该限制的方法:
1、还是央求自己的效劳器,让效劳器做代理,把央求转发给真正的第三方效劳器。这个方案的运用比拟普遍,但一看上去就挺糜费的。
2、Flash。效劳器上要部署一个 crossdomain.xml 文件,并将功用在 Flash 中开发,以到达跨域目的。但是要学习 AS 开发言语,本钱较高。
3、经过 <script src=””> 标签,停止脚本拔出。标签中的脚根源指向第三方效劳器,由于同源战略并不阻止标签中引进第三方效劳器的脚本。经过 JSON 可以改良该方案。缺陷在于:难调试、被不信任的效劳运用时会存在风险。
JSONP 属于第 3 种方案。
JSONP(JSON with Padding)是一个非官方的协议,他的完成方式复杂,但需求一点效劳端的配合。大致就是:让客户端决议要回调的 Javascript 函数名,在第三方效劳端将 JSON 数据拼装到回调函数名中,前往的就是参数为 JSON 数据的函数调用脚本,阅读器加载脚本,并执行,到达获取第三方数据的目的。下面是最后级的实现代码。

提供最优质的资源集合

立即查看 了解详情