У меня есть сайт со встроенным проигрывателем YouTube Flash (AS3), и он больше не работает в Safari.
Ознакомьтесь с этой скрипкой, код для которой просто:
<object type="application/x-shockwave-flash"
data="http://www.youtube.com/apiplayer">
</object>
В Chrome, Firefox и IE возвращается запрос к http://www.youtube.com/apiplayer. нормально (200). В Safari сервер возвращает 303 на https://youtube.googleapis.com/apiplayer.
Этот проигрыватель загружается, но я не могу взаимодействовать с ним в JavaScript. Я предполагаю, что это потому, что он обслуживается по https - хотя я явно запрашиваю http - что приводит к проблеме безопасности смешанного режима. Вот ошибка, которую я вижу при попытке сделать что-либо с проигрывателем (это с полным кодом встраивания проигрывателя без хрома):
>>> player.playVideo()
Error: Error calling method on NPObject.
Если я изменю пользовательский агент Safari на что-то другое или просто искажу слово «Safari», то загрузится правильный проигрыватель. У меня также нет проблем с загрузкой проигрывателей Vimeo и Viddler (http://vimeo.com/moogaloop.swf и http://www.viddler.com/player/key).
Я вижу это как в стабильной версии Safari, так и в ночной версии WebKit. Это также происходит с отключенными моими расширениями и в режиме частного просмотра.
Я попытался обойти это, вставив http://youtube.googleapis.com
, надеясь, что перенаправления не будет и я получу плеер через http. Но он по-прежнему перенаправляет на https, и это происходит во всех браузерах.
На прошлой неделе я подал этот билет API YouTube, но есть пока нет ответа.