PostMessage Проблемы между доменами в iFrame https: // и https://www - PullRequest
0 голосов
/ 28 февраля 2019

Я реализовал междоменный 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"). В результате возникает та же ошибка, нопо крайней мере, это работает.

Есть ли правильное решение для этого?

...