我正在尝试使用postMessage()将消息从一个应用程序发送到另一个应用程序。 我的一个应用程序是在端口9080的自由服务器上,另一个在端口8080的tomcat上。 当我尝试使用相同的应用程序,我可以发布消息,但在同一服务器或不同的服务器上使用不同的应用程序,它不起作用。窗口正在打开,但内容不会显示。
以下是我的档案 -
1)家长应用程序(我发送内容的应用程序)
<script type="text/javascript">
function Menu() {
var opener=window.open("http://localhost:9080/Ancillary/index.jsp");
opener.postMessage('Hello', 'http://localhost:9080');
//opener.callback(document.getElementById("textField").value);
}
</script>
<button id="send" onclick="Menu();">Try it !</button>'
2)儿童应用程序(接收消息)
<script>
function receiver(event) {
if (event.origin == 'http://localhost:9080') {
console.log(event.data+' recieved by parent');
alert(event.data+' recieved by parent');
}
}
window.addEventListener("message", receiver, false);
</script>
<p>This is an Example!</p>
现在我正在尝试使用不同的应用程序在同一台服务器上运行。
答案 0 :(得分:0)
您需要在Web Api中启用CORS。全局启用CORS的更简单和首选方法是将以下内容添加到web.xml
中<init-param>
<param-name>cors.supportedHeaders</param-name>
<param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>
</init-param>