¿Cómo se usa window.postMessage en todos los dominios?

Parece que el punto dewindow.postMessage es permitir una comunicación segura entre ventanas / marcos alojados en diferentes dominios, pero en realidad no parecepermitir eso en Chrome.

Aquí está el escenario:

Incrustar un <iframe> (con unsrc en el dominio B*) en una página en el dominio AEl <iframe> termina siendo principalmente una etiqueta <script>, al final de la cual se ejecuta ...Llamo a window.postMessage (algunos datos, page_on_A )

El <iframe> está definitivamente en el contexto del dominio B, y he confirmado que el javascript incrustado en ese <iframe> se ejecuta correctamente y llamapostMessage con los valores correctos.

Recibo este mensaje de error en Chrome:

No se puede publicar el mensaje enA. El destinatario tiene origenB.

Aquí está el código que registra un detector de eventos de mensajes en la página de A:

window.addEventListener(
  "message",
  function (event) {
    // Do something
  },
  false);

También he intentado llamarwindow.postMessage(some_data, '*'), pero todo lo que hace es suprimir el error.

¿Me estoy perdiendo el punto aquí, es window.postMessage (...) no destinado para esto? ¿O simplemente lo estoy haciendo terriblemente mal?

* Mime-type text / html, que debe permanecer.

Respuestas a la pregunta(3)

Su respuesta a la pregunta