学无所长,一事无成
分类: JavaScript
2014-07-11 09:43:30
Dojo 内置的 Ajax 能力提供了一种动态访问资源的简单而强大的接口。但是浏览器对跨域访问的安全限制,会禁止你向其他域发出 XHR 请求。该怎么办?很多现代浏览器基于 W3C 的 规范,提供了跨域访问能力。可是并非所有浏览器都支持(肯定的),而且还有大量的现存的服务端不支持这个规范。
解决跨域通信问题,答案是使用填充式 JSON(JSON with Padding),或者叫 JSONP.。Bob Ippolito 在 2005 年首次提出了 JSONP 技术( ),截止目前已经有许多 services 包括 Google,GitHub,Facebook 等都提供了访问其服务器的 API。Dojo 的 dojo/request/script 模块(Dojo 1.8 引入,用于替换 dojo/io/script) 提供了一种无缝访问 JSONP 的解决方案,使用简单,无需各种乱七八糟的设置。
那 JSONP 技术到底是什么呢?同 XHR 不同,浏览器并不阻止跨域加载脚本。JSONP 工作的基础就是,动态地往页面中加入一个