http://beta.billboard.fm的我的应用在播放一首歌后,在我的正常浏览会话中产生错误。
如果我以隐身方式重新加载页面,该应用程序可以正常运行。我最近才开始遇到这些问题。我已经完成清除了所有缓存并且它再次工作,但只是在抛出相同的错误之前暂时。
此外,我已禁用所有浏览器扩展程序。
但是,无论我做什么,我都无法通过Youtube API抛出此错误:
无法向http://www.youtube.com发送消息。收件人来源https://www.youtube.com
看起来安全协议存在不匹配。我尝试将它们更改为https或只是删除“http:”一起在我身边。但它没有解决问题。
任何人都知道这里发生了什么?
答案 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/
请确保以下提示
- 加载iframe api https://www.youtube.com/player_api
- 加载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