javascript - 未捕获的语法错误 : Failed to execute 'postMessage' on 'Window' : Invalid target origin 'my_page' in a call to 'postMessage'

标签 javascript jquery cross-browser postmessage

我有以下脚本

父页面(pair_pixel_filter.php):

 window.addEventListener("message", function(e) {
            $('#log').append("Received message: " + (e.data));
        }, false);
 $('.photo-upload-btn').click(function(event) {
            event.preventDefault();
            window.open($(this).attr("href"), "popupWindow", "width=600,height=600,scrollbars=yes");
        });

子页面

$.ajax({
            type: 'post',
            url: url,
            data: {
                base64data: dataURL
            },
            success: function(data) {
                window.opener.postMessage(data, "pair_pixel_filter.php");
                window.close(); }
        });

基本上是打开一个弹出窗口,然后在弹出窗口上执行一些 ajax 并将结果返回给父窗口。但是从 Child 我收到了这个错误。

Uncaught SyntaxError: Failed to execute 'postMessage' on 'Window': Invalid target origin 'pair_pixel_filter.php' in a call to 'postMessage'

最佳答案

postMessage 的第二个参数是“目标来源”。这是页面所在的,而不是 (php) 文件的名称。

它需要是这样的:

window.opener.postMessage(data, "http://example.com");

参见:https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage

关于javascript - 未捕获的语法错误 : Failed to execute 'postMessage' on 'Window' : Invalid target origin 'my_page' in a call to 'postMessage' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23373376/

相关文章:

javascript - CSS 光标指针覆盖元素列表拖动上的内联样式光标

javascript - 在js中确定event.target下方的元素

javascript - 使用 Ajax 和 php 联系我们的网页

javascript - 如何在mozilla firefox浏览器中使用javascript/asp.net刷新父页面

javascript - 同一页面内的偏移链接

javascript - 如何创建编辑按钮在 CRUD 中正常工作?

javascript - 如何序列化此 JSON 对象?

javascript - 使用 jQuery 回滚 SELECT 更改

javascript - 是否有可靠的方法来确定浏览器选项卡或窗口是否处于非事件状态或未处于焦点状态?

javascript - 在 Facebook 墙上张贴; fb 错误 191 - 使用 facebook 连接插件