当我使用Window.postMessage()来调用具有相同协议,域和端口

时间:2016-08-23 09:52:12

标签: javascript

我正在使用Window.postMessage()从iframe调用方法。 父页面网址为http://uir.glassbeam.com,iframe src为http://gbdashboards.glassbeam.com

当我尝试从iframe发送postMessage时,在控制台上获取错误

  

屏蔽了包含原点" http://gbdashboards.glassbeam.com"从   访问具有原点" http://uir.glassbeam.com"的框架。协议,   域和端口必须匹配。

两个url都有相同的协议,域和端口,但是错误?

1 个答案:

答案 0 :(得分:0)

window.postMessage()可以安全地启用跨源通信,如果执行它们的页面位于相同的位置:

  • 协议(通常都是https)
  • 端口号(443是https的默认值)
  • host(document.domain由两个页面设置为相同的值)

在您的情况下document.domain与您的两个脚本不匹配,正如您的错误消息所示,您实际上gbdashboards.glassbeam.comuir.glassbeam.comdocument.domain