Uncaught SyntaxError:无法在’Window’上执行’postMessage’:调用’postMessage’时无效的目标原点’my_page’

我有以下脚本

父页面(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(); } }); 

基本上打开一个Popup,然后弹出一些ajax并将结果返回给父级。 但是从Child我得到了这个错误。

未捕获的SyntaxError:无法在’Window’上执行’postMessage’:调用’postMessage’时无效的目标原点’pair_pixel_filter.php’

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

它需要是这样的:

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

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