【问题标题】:YouTube Iframe API has 'Blocked a frame with origin' error only in SafariYouTube Iframe API 仅在 Safari 中出现“阻止带有来源的帧”错误
【发布时间】:2017-05-31 16:03:21
【问题描述】:

我像这样使用 iframe API

<iframe id="youtubePlayer" type="text/html" width="100%" height="auto" src="http://www.youtube.com/embed/someid?enablejsapi=1&origin=http://myurl.com" frameborder="0"></iframe>

请注意,我已将src 更改为http 并添加了origin,但仍然出现以下错误:

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

该问题仅出现在 Safari 中。我做了一些调试,似乎 Sf() 只在 www-embed.js 的 Safari 中被调用。

谢谢!

【问题讨论】:

  • 你试过用 https 代替 http 吗?
  • @noogui 我的网站正在使用 http,仅仅为此将我的整个网站移动到 https 的开销太大了。还有一件事我不明白的是,为什么 iframe 试图访问我的网站(父级)以及为什么这只发生在 Safari 中。
  • 你的错误说你需要使用 https
  • @noogui 是的,但我正在寻找答案,为什么 youtube iframe 试图访问我的网站。

标签: iframe youtube-api


【解决方案1】:

看起来 iFrame 上的 Safari 实现有缺陷。在 Safari 上,YouTube iFrame API official page 给出了相同的错误消息。所以目前没有办法规避这种情况,直到 Safari 解决这个问题。

【讨论】:

  • 看起来 Safari 已经解决了这个问题。
猜你喜欢
  • 2013-05-12
  • 2014-11-01
  • 2013-08-19
  • 1970-01-01
  • 1970-01-01
  • 2015-04-30
  • 1970-01-01
  • 2017-09-26
  • 2012-04-04
相关资源
最近更新 更多