Uncaught SyntaxError: Не удалось выполнить 'postMessage' в 'Window': Недопустимое целевое начало 'my_page' в вызове 'postMessage'

i имеет следующий script

Родительская страница (пара_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");
        });

Страница "Ребенок"

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

В основном открытие всплывающего окна, а затем выполнение некоторого ajax при всплывании и возвращении результата родительскому. Но от Child я получаю эту ошибку.

Uncaught SyntaxError: не удалось выполнить 'postMessage' в 'Window': недопустимое исходное начало 'par_pixel_filter.php' в вызове 'postMessage'

Ответ 1

Второй параметр postMessage - это "целевое происхождение". Это домен, где находится страница, а не имя файла (php).

Это должно быть что-то вроде:

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

Смотрите: https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage