Como você usa window.postMessage entre domínios?
Parece que o ponto dewindow.postMessage é permitir a comunicação segura entre janelas / quadros hospedados em domínios diferentes, mas na verdade não parecepermitir isso no Chrome.
Aqui está o cenário:
Incorpore um <iframe> (com umsrc
no domínio B*) em uma página no domínio AO <iframe> acaba sendo principalmente uma tag <script>, no final da qual é executada ...Eu chamo window.postMessage (some_data, page_on_A )O <iframe> está definitivamente no contexto do domínio B e confirmei que o javascript incorporado nesse <iframe> é executado corretamente e chamapostMessage
com os valores corretos.
Recebo esta mensagem de erro no Chrome:
Não foi possível postar a mensagem paraA. O destinatário tem origemB.
Aqui está o código que registra um ouvinte de evento de mensagem na página em A:
window.addEventListener(
"message",
function (event) {
// Do something
},
false);
Eu também tentei ligarwindow.postMessage(some_data, '*')
, mas tudo o que faz é suprimir o erro.
Estou apenas perdendo o ponto aqui, window.postMessage (...) não é para isso? Ou estou apenas fazendo isso terrivelmente errado?
* Mime-type text / html, que deve permanecer.