3

我在 YouTube iframe API 中遇到各种 http/https 和来源错误,这只是 Safari 的问题(我认为在大多数版本上,我使用的是 7.0.4 版)

我收到这些错误:

无法将消息发布到https://www.youtube.com。收件人的来源http://example.com

和:

阻止来源为“ https://www.youtube.com ”的框架访问来源为“ http://example.com ”的框架。请求访问的帧具有“https”协议,被访问的帧具有“http”协议。协议必须匹配。

结果是视频保持黑色,有时其中有一个播放图标。视频通常会加载,它相当随机。视频本身会自动播放,因此无需单击。所有其他浏览器都表现良好。

创建 YTPlayer 时, origin 参数设置如下:

playerVars: {
    origin: 'http://example.com'
}

YouTube 本身是这样加载的:

var tag = document.createElement('script');
tag.src = "//www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

我试过指定“ http://www.youtube.com/iframe_api ”;我得到同样的错误。我的域是 http 而不是 https - 我猜这是问题的根源,我不确定如何阻止 youtube 默认为 https。

4

0 回答 0