标签:跨域访问 bsp 页面 主机名 技术 hash nal 另一个 data
1.window.postMessage访问能够安全的实现跨域访问;
2.不同页面的scripts如果要实现互相访问的话,必须要满足以下几个条件:
(1)相同的协议;
(2)相同的接口;
(3)相同的主机名;
(window.name、location.hash等等其实也是可以实现跨域访问的)
3.window.postMessage能够安全的绕过这些限制。
1.当window.postMessage方法被调用时,会产生一个MessageEvent,这个event会被派遣到目标窗口;
2.MessageEvent被赋予两个属性,一个是要传输到目标窗口的数据,另一个是调用postMessage方法的当前窗口所在的域。
<!--a.com/a.html--> <script> window.onload = function(){ var data = ‘a‘; var targetOrigin = ‘http://b.com‘; window.postMessage(data, targetOrigin); } </script>
<!--b.com/b.html--> <script> window.addEventListener(‘message‘, receiveMessage, false); function receiveMessage(event){ var origin = event.origin || event.originalEvent.origin; if(origin !== ‘http://a.com‘){ return; } } </script>
标签:跨域访问 bsp 页面 主机名 技术 hash nal 另一个 data
原文地址:http://www.cnblogs.com/dylanthomas/p/6049033.html