gpt4 book ai didi

javascript - 不同端口上不同应用程序的跨域消息传递

转载 作者:行者123 更新时间:2023-11-27 22:30:58 24 4
gpt4 key购买 nike

我正在尝试使用 postMessage( ) 将消息从一个应用程序发送到另一个应用程序。我的一个应用程序位于 liberty 服务器上,端口为 9080,另一个应用程序位于 tomcat 上,端口为 8080。当我使用相同的应用程序尝试它时,我可以发布消息,但对于同一服务器或不同服务器上的不同应用程序,它不起作用。窗口打开了,但内容没有显示。

以下是我的文件 -

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>

现在我正在尝试让它在同一服务器上使用不同的应用程序工作。

最佳答案

您需要在 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>

关于javascript - 不同端口上不同应用程序的跨域消息传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39586218/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com