相关疑难解决方法(0)

你如何跨域使用window.postMessage?

看起来像window.postMessage的目的是允许在不同域上托管的窗口/框架之间进行安全通信,但实际上它似乎并不允许在Chrome中使用.

这是场景:

  1. 在域A的页面中嵌入<iframe>(带有src域B *)
  2. <iframe>最终主要是一个<script>标签,最后执行...
  3. 我调用window.postMessage(some_data,page_on_A)

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

我在Chrome中收到此错误消息:

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

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

window.addEventListener(
  "message",
  function (event) {
    // Do something
  },
  false);
Run Code Online (Sandbox Code Playgroud)

我也尝试过调用window.postMessage(some_data, '*'),但所有这一切都是为了抑制错误.

我只是忽略了这一点,是window.postMessage(...)不是为了这个吗?或者我只是做得非常糟糕?

*Mime-type text/html,它必须保留.

javascript xss html5 google-chrome

81
推荐指数
2
解决办法
13万
查看次数

标签 统计

google-chrome ×1

html5 ×1

javascript ×1

xss ×1