无法在“DOMWindow”上执行“postMessage”:提供的目标源(“..”)与收件人窗口的源(“”)不匹配

Pra*_*nna 5 javascript jquery

我有一个包含按钮的小应用程序(localhost:55777)窗口。我正在另一个应用程序(localhost:3214)中以弹出窗口的形式打开此应用程序。

我希望在单击托管在 (localhost:55777) 的上述按钮时关闭弹出窗口(托管在 localhost:3214)。为此,我使用 window.postMessage() 并通过 addListener 处理消息事件。

完整的代码在这里:

应用程序 1(发件人) http://localhost:55777

<button id="closeme" onclick="closeParent()">Close Parent</button>
Run Code Online (Sandbox Code Playgroud)

JS:

function closeParent() {    

window.postMessage("closePopUp", "http://localhost:3214");


return false;
Run Code Online (Sandbox Code Playgroud)

}

应用程序 2(接收方):http://localhost:3214

JS:

 function receiveMessage(event) {
    if (event.data == 'close') {
        alert("Message received");
    }
}
addEventListener("message", receiveMessage, false);
Run Code Online (Sandbox Code Playgroud)

现在,当调用 postMessage 时,接收方永远不会命中方法。出现错误:

无法在“DOMWindow”上执行“postMessage”:提供的目标源(“ http://localhost:3214 ”)与收件人窗口的源(“ http://localhost:55777 ”)不匹配。

有人可以建议解决这个问题吗?我正在使用 jquery 和脚本类型。