js跨域的各种方法总结。
前几天电话面试被问到了跨域问题,由于之前的工作没怎么接触到跨域。所以答的很烂。今天特意总结了一下。
1:josnP:优点:兼容性好点。缺点:值支持get请求。实现方式:script请求跨域的地址并用问好传参的形式传过去回到函数以及参数例如
<script src = 'http://localhost:3001/ajax/deal?callback=jsonpCallback&name=chiaki&id=3001&_=1473164876032'></script>
2:cors:优点:支持get,post等等。缺点:兼容性差一些,只支持ie10以上或者标准流浏览器。实现方式:主要服务器进行配置。
Access-Control-Allow-Origin: http://api.bob.com
通过这个属性来控制哪些域可以访问当前域。
3:ngix来进行跨域:这个 没实际用过不敢多说http://www.cnblogs.com/gabrielchen/p/5066120.html。附上一条链接。大家进行参考。
4:html5中的postMessage。这个当前窗口要通过iframe去当目标域的某个窗口然后通过otherWindow.postMesage(data,'http://www.a.com')进行传递,然后目标窗口通过message事件进行接收
window.addEventListener("message", receiveMessage, false); function receiveMessage(event) { // For Chrome, the origin property is in the event.originalEvent // object. var origin = event.origin || event.originalEvent.origin; if (origin !== "http://example.org:8080") return; // ... }
这个属性目前还不是很常用,工作中也没遇到过。等待测试。