跨域方法很多,像 JSONP、Iframe Hash Transport、HTML5 postMessage 甚至是 window.name。
但这些方法各有各的局限性,比如 JSONP 和 Iframe Hash Transport 受 URL 长度限制,本质还是同步请求。postMessage 受浏览器兼容性限制,当然还有 easyXDM 这东西,但是感觉太重。
最近项目里需要跨(子)域发送一个段长文本,上面到方案都有些局限,而需求还有一些特殊性,就是只需要跨子域。于是找到了设置document.domain
这种方式。
这里需要说明的一点是,设置document.domain
这种跨子域通讯的方式,不是说子域与子域之间可以发送 AJAX 请求,而是利用子域与子域的 iframe 之间可以传送数据这一特性完成跨域通讯。
这里是 demo 地址:http://subdomain1.herokuapp.com/ 源码:https://github.com/hooopo/cross_subdomain_demo
refs: