Невозможно отправить сообщение на https://player.vimeo.com. Получатель имеет происхождение https://tpc.googlesyndication.com

Я пытаюсь воспроизвести видео с помощью vimeo player онлайн в браузере Safari на Mac OS. Но когда я отправляю "готовый" запрос, я получаю сообщение об ошибке, которое говорит

Невозможно отправить сообщение на https://player.vimeo.com/. Получатель имеет происхождение https://tpc.googlesyndication.com/.

Вот как я называю функции Vimeo

 var player = $('iframe');
        var playerOrigin = '*';
        var status = $('.status');
        // Listen for messages from the player
        if (window.addEventListener) {
            window.addEventListener('message', onMessageReceived, false);
        }
        else {
            window.attachEvent('onmessage', onMessageReceived, false);
        }
        // Handle messages received from the player
        function onMessageReceived(event) {
            // Handle messages from the vimeo player only
            if (!(/^https?:\/\/player.vimeo.com/).test(event.origin)) {
                return false;
            }
            if (playerOrigin === '*') {
                playerOrigin = event.origin;
            }
            var data = JSON.parse(event.data);
            switch (data.event) {
                case 'ready':
                    onReady();
                    break;

                case 'playProgress':
                    onPlayProgress(data.data);
                    break;

                case 'pause':
                    onPause(data.data);
                    break;

                case 'seek':
                    onseekTo(data.data);
                    break;

                case 'finish':
                    onFinish();
                    break;
            }
        }
        // Helper function for sending a message to the player
        function post(action, value) {
            var data = {
                method: action
            };
            if (value) {
                data.value = value;
            }
            var message = JSON.stringify(data);
            player[0].contentWindow.postMessage(message, playerOrigin);
        }

        function onReady() {
            $(".loading").show();
            post('addEventListener', 'finish');
            post('addEventListener', 'playProgress');
            post('addEventListener', 'pause');
            post('addEventListener', 'seek');

        }

0 ответов

Похоже, плеер рендерится через рекламу Google. tpc.googlesyndication - это рекламная платформа Google. Рекламу заворачивают плеера. Так что любойpostMessages пройти через это, следовательно, очистить фактическое происхождение события.

Я столкнулся с аналогичной проблемой. У меня есть временная задержка, чтобы использовать'*' (Меня смущает идея иметь цель с подстановочными знаками; но у меня пока нет более чистого решения)

Другие вопросы по тегам