您如何跨域使用window.postMessage?

似乎window.postMessage的重点是允许在不同域中托管的Windows /框架之间进行安全通信,但实际上似乎不允许在Chrome中进行通信。


这是场景:


在域A的页面中嵌入<iframe>(具有src域B *)

<iframe>最终主要是一个<script>标记,在执行结束时...

我叫window.postMessage(some_data,page_on_A)

<iframe>绝对是在域B的上下文中,并且我已经确认<iframe>中的嵌入式javascript可以正确执行并postMessage使用正确的值进行调用。


我在Chrome中收到以下错误消息:


无法发布消息到一个。收件人有产地乙。


这是在A页面上注册消息事件侦听器的代码:


window.addEventListener(

  "message",

  function (event) {

    // Do something

  },

  false);

我也尝试过致电window.postMessage(some_data, '*'),但所有要做的就是抑制错误。


我只是在这里遗漏了一点,是不是window.postMessage(...)并非要这样做吗?还是我只是做错了什么?


* MIME类型的text / html,必须保留。


绝地无双
浏览 971回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP