iFrame https://和https:// www中的postMessage跨域问题

时间:2019-02-28 12:01:54

标签: javascript web iframe cross-domain

我实现了跨域IFrame。 在我的主页上,我正在使用此功能:

window.addEventListener("message", receiveMessage, false);

    function receiveMessage(event)
    {
      var origin = event.origin || event.originalEvent.origin; 

      if (origin !== "https://www.domain.xy" && origin !== "https://domain.xy")
        return;

      $('#gbook').height(event.data + 30);
    }

在IFrame内部应使用的页面上,我实现了以下代码:

var height= getAbsoluteHeight('body');
parent.postMessage(
       height, 
       "https://www.domain.xy"
);

现在,当我使用URL“ https://www.domain.xy”打开页面时,一切正常。但是,一旦我尝试通过“ https://domain.xy”(不带“ www。”)打开它,浏览器就会抛出异常:

Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://www.domain.xy') does not match the recipient window's origin ('https://domain.xy').

我已经通过发布两条消息(一条消息发送到“ https://domain.xy”,一条消息发送到“ https://www.domain.xy”)来解决该问题。这样做的结果是相同的错误,但至少可以正常工作。

对此有适当的解决方案吗?

0 个答案:

没有答案
相关问题
最新问题