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