H5中postMessage解决数据跨域

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了H5中postMessage解决数据跨域相关的知识,希望对你有一定的参考价值。

一、发送端(http://a.domain.com):

1、添加一个iframe,指定接收的页面:

<iframe id="receivePage" src="http://b.domain.com/receive.html"></iframe>

2、在js中添加postMessage方法:

document.getElementById("receivePage").contentWindow.postMessage("要传递的数据","*");

二、接收端(http://b.domain.com)的receive.html:

<!doctype html>
<html>
<head>
</head>
<body style="height:100%;">
    <script type="text/javascript">
            window.addEventListener(message, function(e) {
                if (e.source != window.parent)
                    return;
                if(e.origin != "http://a.domain.com")//请求源验证
                    return;
                localStorage.YourKey = e.data;
            }, false);
    </script>
</body>
</html>

 

以上是关于H5中postMessage解决数据跨域的主要内容,如果未能解决你的问题,请参考以下文章

h5h5数据跨域交换postMessage用法

H5之postMessage

html5 postMessage解决跨域跨窗口消息传递

html5 postMessage解决跨域跨窗口消息传递

postMessage解决跨域问题

html5 postMessage解决跨域跨窗口消息传递