Как вы используете window.postMessage через домены?
Похоже, точкаwindow.postMessage разрешить безопасную связь между окнами / фреймами, размещенными в разных доменах, но на самом делеразрешать что в хроме.
Вот сценарий:
Вставить <iframe> (сsrc
в домене B*) на странице в домене A<Iframe> заканчивает тем, что был главным образом тегом <script>, в конце которого выполнение ...Я называю window.postMessage (some_data, page_on_A )<Iframe> наиболее определенно находится в контексте домена B, и я подтвердил, что встроенный JavaScript в этом <iframe> работает правильно и вызываетpostMessage
с правильными значениями.
Я получаю это сообщение об ошибке в Chrome:
Невозможно отправить сообщениеA, Получатель имеет происхождениеB.
Вот код, который регистрирует прослушиватель события сообщения на странице на A:
window.addEventListener(
"message",
function (event) {
// Do something
},
false);
Я также пытался позвонитьwindow.postMessage(some_data, '*')
, но все, что делает, это подавляет ошибку.
Я просто упускаю суть, разве window.postMessage (...) не предназначен для этого? Или я просто делаю это ужасно неправильно?
* MIME-тип текста / HTML, который он должен оставаться.