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.

questionAnswers(3)

yourAnswerToTheQuestion