2014-04-29 13 views
10

tôi đã theo kịch bảnLỗi Cú pháp chưa gặp: Không thực thi 'postMessage' bật 'Window': không hợp lệ nguồn gốc đích 'my_page' trong một cuộc gọi đến 'postMessage'

Trang Phụ Huynh (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"); 
     }); 

Child trang

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

Về cơ bản mở một Popup và sau đó doin g một số ajax trên bật lên và trả về kết quả cho cha mẹ. Nhưng từ trẻ em tôi nhận được lỗi này.

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

Trả lời

18

Tham số thứ 2 là postMessage là "nguồn gốc mục tiêu". Đây là tên miền nơi trang được đặt, không phải tên của tệp (php).

Nó cần phải được cái gì đó như:

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

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

+1

rất đúng, tôi chỉ phát hiện ra rằng chúng tôi cần phải vượt qua Đường dẫn đầy đủ như 'localhost/abc/mypage.php' –

Các vấn đề liên quan