【问题标题】:Unable to post message to http://www.youtube.com. Recipient has origin https://www.youtube.com无法将消息发布到 http://www.youtube.com。收件人来源 https://www.youtube.com
【发布时间】:2013-12-02 12:23:28
【问题描述】:

我在http://beta.billboard.fm 的应用在播放一首歌曲后在我的正常浏览会话中产生错误。

如果我以隐身模式重新加载页面,该应用程序将完全正常运行。我最近才开始遇到这些问题。我已经清除了所有缓存,它又可以工作了,但只是暂时在抛出相同的错误之前。

此外,我已禁用所有浏览器扩展。

但是,无论我做什么,Youtube API 都会抛出这个错误:

无法向http://www.youtube.com 发布消息。收件人来自https://www.youtube.com

安全协议似乎不匹配。我尝试将它们更改为 https 或者只是在我这边一起删除“http:”。但这并没有解决问题。

有人知道这里发生了什么吗?

【问题讨论】:

    标签: javascript youtube youtube-api youtube-javascript-api youtube-data-api


    【解决方案1】:

    在这一点上,我很清楚这是 Google/YouTube API 中的一个主要错误。他们在某处写了一些糟糕的代码。这个错误不是一个一致的东西。每个人的代码在很长一段时间内都可以正常工作,然后他们发现他们的网站突然停止正常工作,这一点很好地证明了这一点。此外,我上周遇到此问题的所有网站现在都可以正常运行 - 同样,无需我更改代码。

    因此,尽管这样说很糟糕 - Google 和 YouTube 有责任解决此​​问题并提供实际工作的 API 广告...在我看来,我们无法靠自己做任何事情:(

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题 - 我还尝试将我的链接更改为 http: 到 https: ,反之亦然,但没有运气。我在 Google Groups 上发现了这一点,但到目前为止还没有任何回应。 https://code.google.com/p/gdata-issues/issues/detail?id=4697

      清除我的缓存后,播放器可以播放一些视频,但在 3 或 4 之后,又会弹出相同的错误。

      【讨论】:

      • 谢谢,我会留意这个...如果你想出什么办法,请告诉我
      • 距离我第一次注意到这个问题已经一个多月了,几乎没有什么变化。但是,会有几天或几周的时间没有出现问题,然后问题会突然出现。这发生在我没有更改代码的情况下,因此 Google 似乎在修改他们的 API 并没有真正让我们知道。
      • 我只是想评论一下,我已经好几个月没有看到讨论过的错误了——也许谷歌已经清理了这个错误?
      【解决方案3】:

      更新 2 - 2013 年 12 月 24 日:此解决方案实际上根本没有解决问题:

      在关注his answer 中提到我的帖子后,论坛中的用户发布了following solution which seems to be doing the trick for me更新:仍然遇到随机页面加载问题:/):

      大家好,

      它正在将 http:// 替换为 https://

      示例:http://jsfiddle.net/8tkgW/29/

      请确认以下提示

      1. 加载 iframe api https://www.youtube.com/player_api
      2. 加载 iframe src 路径:https://www.youtube.com/embed/0GN2kpBoFs4?rel=0

      如果通过新的 YT.Player 加载播放器,则必须检查 iframe src 路径:

      setTimeout(function(){
          var url = $('#iframe_youtube').prop('src');
          if (url.match('^http://') {
              $('#iframe_youtube').prop('src', url.replace(/^http:\/\//i, 'https://'));
          }
      }, 500);
      

      请参考我的github项目:

      https://github.com/appleboy/js-video-player/blob/master/js/jsplayer.js#L120

      【讨论】:

      • 更新:我实际上仍然遇到了一些问题,但它比以前更加一致。如果我遇到问题,通常只需刷新几次页面即可。
      • 现在,大部分时间都不工作。但是,也许这对其他人有用。
      • 嘿伙计们——我只是悬赏于此,因为我正在处理同样的问题并且对它们感到非常沮丧。任何人的问题 - 有什么方法可以编辑赏金消息吗?为了便于使用,我在其中设置了没有格式化的换行符。因此,我想添加一些“||||||”或将段落分开的东西,只是为了使其更具可读性。
      • @thisissami 我无法重现您的问题;我检查了你的网址,关注了谷歌群组线程并检查了那里的所有网址,在多个浏览器中重新加载了多次,还没有找到失败的视频。 Jeff Callahan——你在上面采用和实现的代码根本没有做任何事情,因为它有一个语法错误;您需要在花括号之前的 if 语句上加上第二个右括号。但是,即使出现该错误,我仍然无法让您的任何视频失败。可能是单个页面和单个浏览器版本始终失败的具体细节?
      • @jlmcdonald,具体页面是beta.billboard.fm(或任何子页面),我使用的是 Chrome 版本 31.0.1650.63 m,使用的是 Windows 7,Service Pack 1。我希望这会有所帮助。它似乎对其他人有效,然后对其他人无效。一开始似乎是随机的,但我敢肯定我错过了一些共性。
      猜你喜欢
      • 2018-03-20
      • 2016-08-01
      • 2015-02-18
      • 1970-01-01
      • 2022-09-28
      • 2015-07-29
      • 2012-03-13
      • 1970-01-01
      • 2015-06-28
      相关资源
      最近更新 更多