2014-04-29 8 views
10

मैं स्क्रिप्ट निम्नलिखित हैUncaught सिंटैक्स त्रुटि: करने के लिए 'postMessage'

जनक पृष्ठ (pair_pixel_filter.php) एक कॉल में अमान्य लक्ष्य मूल 'my_page': 'विंडो' पर 'postMessage' निष्पादित करने में विफल

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"); 
     }); 

बाल पृष्ठ

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

मूल रूप से एक पॉपअप खोलने और फिर कर रहा पॉप अप पर कुछ AJAX और माता-पिता को परिणाम लौट रहा है। लेकिन बच्चे से मुझे यह त्रुटि मिल रही है।

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

उत्तर

18

postMessage का दूसरा पैरामीटर "लक्ष्य मूल" है। यह डोमेन है जहां पृष्ठ स्थित है, (php) फ़ाइल का नाम नहीं है।

यह की तरह कुछ करने की जरूरत है:

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

देखें: https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage

+1

बिल्कुल सच, मैं सिर्फ पता चला कि उसमें तरह 'स्थानीय होस्ट/abc/mypage.php' पूर्ण पथ पारित करने के लिए की जरूरत है –

संबंधित मुद्दे

 संबंधित मुद्दे