2013-06-19 2 views
0

Я создал пользовательский гаджет в Youtube Brand Channel, и он размещен на сервере с SSL-совместимостью по требованию от Youtube.HTML5 window.postMessage в Youtube Brand Channel

Однако, если я получаю доступ к каналу через http, postMessage() отказывается работать, поскольку он вызывается на сервере https.

Мой код выглядит так:

var new_height = JSON.stringify({"height": height + "px"}); 
top.postMessage(new_height, location.protocol +"//www.youtube.com/"); 

Ошибка как этот

Unable to post message to https://www.youtube.com. Recipient has origin http://www.youtube.com. 

Что я могу сделать, чтобы исправить это? Спасибо

ответ

1

Убедитесь, что ваш пользовательский гаджет доступен с обоими протоколами, http и https.

Когда пользователь открывает ваш канал с URL-адресом https://youtube.com/[username], youtube отобразит ваш гаджет в iframe с помощью https, когда пользователь откроет http://youtube.com/[username], youtube будет рендеринга http версии вашего гаджета.

Просто убедитесь, что вы не перенаправляетесь с http на https.

Мы сделали такой гаджет пару дней назад с динамическим изменением размера и с учетом того, что я написал ранее, все работает в обоих протоколах.

+0

Следует отметить, что страница канала должна находиться в том же домене (если не такой же URL?), Как тот, который вы предоставили на youtube - они позволяют только этой странице задавать высоту. –

Смежные вопросы