Wie wird window.postMessage domänenübergreifend verwendet?

Es scheint wie der Punkt von window.postMessage soll die sichere Kommunikation zwischen Fenstern / Frames ermöglichen, die auf verschiedenen Domänen gehostet werden, aber es scheint nicht wirklichermögliche das in Chrome.

Hier ist das Szenario:

Einschließen eines <iframe> (mit einemsrc auf Domain B*) auf einer Seite in Domain ADas <iframe> -Tag ist meistens ein <script> -Tag, an dessen Ende die Ausführung steht ...Ich rufe window.postMessage (@ aDate, page_on_A )

Das <iframe> ist definitiv im Kontext von Domain B und ich habe bestätigt, dass das eingebettete Javascript in diesem <iframe> ordnungsgemäß ausgeführt wird und @ aufrufpostMessage mit den richtigen Werten.

Ich erhalte diese Fehlermeldung in Chrome:

Kann keine Nachricht an @ sendA. Empfänger hat HerkunftB.

Hier ist der Code, der einen Listener für Nachrichtenereignisse auf der Seite in A: @ registrier

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

Ich habe auch versucht, @ anzurufwindow.postMessage(some_data, '*'), aber alles, was Sie tun können, ist, den Fehler zu unterdrücken.

Bei mir fehlt hier nur der Punkt, ist window.postMessage (...) nicht dafür gedacht? Oder mache ich es nur fürchterlich falsch?

* Mime-Typ text / html, den es bleiben muss.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage