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

时间:2013-11-19 04:31:11

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

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

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

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

但是,无论我做什么,我都无法通过Youtube API抛出此错误:

  

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

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

任何人都知道这里发生了什么?

3 个答案:

答案 0 :(得分:4)

此时我很清楚这是Google / YouTube API中的一个主要错误。他们在某处写了一些不好的代码。这个bug不是一回事。事实证明,每个人的代码都可以在很长一段时间内正常工作,然后他们发现他们的网站突然停止正常工作。此外,我上周遇到此问题的所有网站现在都没有出现故障 - 再次,没有我改变代码。

所以尽管说这个很糟糕 - 但责任在谷歌和YouTube要解决此问题,并提供实际上与广告宣传相同的API ...我不认为我们可以自己做任何事情:(

答案 1 :(得分:3)

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

清除我的缓存允许播放器为一些视频工作,但在3或4之后,会弹出相同的错误。

答案 2 :(得分:3)

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

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

  

大家好,

     

它正在使用https://

替换http://      

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

     

请确保以下提示

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

    如果通过新的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