2014-04-29 5 views
10

ich habe folgende SkriptUncaught Syntaxerror: Fehler beim Ausführen ‚postmessage‘ auf ‚Fenster‘: Ungültige Ziel Herkunft ‚my_page‘ in einem Aufruf ‚postmessage‘

Eltern Seite (pair_pixel_filter.php):

window.addEventListener("message", function(e) { 
      $('#log').append("Received message: " + (e.data)); 
     }, false); 
$('.photo-upload-btn').click(function(event) { 
      event.preventDefault(); 
      window.open($(this).attr("href"), "popupWindow", "width=600,height=600,scrollbars=yes"); 
     }); 

Das Kind Seite

$.ajax({ 
      type: 'post', 
      url: url, 
      data: { 
       base64data: dataURL 
      }, 
      success: function(data) { 
       window.opener.postMessage(data, "pair_pixel_filter.php"); 
       window.close(); } 
     }); 

Im Grunde ein Popup zu öffnen und dann doin g einige Ajax auf Pop-up und Ergebnis zurück zum Elternteil. Aber von Child bekomme ich diesen Fehler.

Uncaught SyntaxError: Failed to execute 'postMessage' on 'Window': Invalid target origin 'pair_pixel_filter.php' in a call to 'postMessage'

Antwort

18

Der 2. Parameter zu postMessage ist der "Zielursprung". Dies ist die Domäne wo sich die Seite befindet, nicht der Name der (php) Datei.

Es braucht wie etwas zu sein:

window.opener.postMessage(data, "http://example.com"); 

See: https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage

+1

sehr wahr, ich gerade herausgefunden, dass wir Vollständiger Pfad wie 'localhost/abc/mypage.php' übergeben müssen –

Verwandte Themen