Unable to post message to http://www.youtube.com. Recipient has origin https://www.youtube.com

梦想的初衷 提交于 2019-11-29 16:49:35

问题


My app at http://beta.billboard.fm is producing errors in my normal browsing session after playing a single song.

If i reload the page in incognito, the app works fully. I only recently starting experiencing these issues. I have completed cleared all of the cache and it works again, but only temporarily before throwing the same errors.

Additionally I have disable all browser extensions.

But, no matter what I do I can't get this error from being thrown by the Youtube API:

Unable to post message to http://www.youtube.com. Recipient has origin https://www.youtube.com

It looks like there is a mismatch in the security protocols. I tried changing them to https or just removing "http:" all together on my side. But it did not resolve the issue.

Any one have an idea what is happening here?


回答1:


It is quite clear to me at this point that this is a major bug in Google/YouTube's API. They have written some bad code somewhere. This bug is not a consistent thing. This is well documented by the fact that everybody's code works just fine for an extended period of time, and then they discover that all of a sudden their sites stop working properly. Additionally, all of my websites that had this problem last week are now working without a glitch - again, without me altering code.

So while it sucks to say this - the onus is on Google & YouTube to fix this and provide APIs that actually work as advertised... It doesn't look to me like there's anything we can do about it on our own :(




回答2:


I am having the same problem - I also tried changing my links to http: to https: and vice-versa with no luck. I found this tread on Google Groups, but so far there has been no response. https://code.google.com/p/gdata-issues/issues/detail?id=4697

Clearing my cache allowed the player to work for a few videos, but after 3 or 4, the same error pops back up.




回答3:


UPDATE 2 - Dec. 24, 2013: This solution has not actually fixed the problem at all:

After following a thread that poulified referred me to in his answer, a user in the forum posted the following solution which seems to be doing the trick for me (UPDATE: Still experiencing issues on random page loads :/):

Hi all,

It is working for replacing http:// with https://

example: http://jsfiddle.net/8tkgW/29/

Please make sure the following tips

  1. load iframe api https://www.youtube.com/player_api
  2. load iframe src path: https://www.youtube.com/embed/0GN2kpBoFs4?rel=0

If load player via new YT.Player, you must check the iframe src path:

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

Please refer my github project:

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



来源:https://stackoverflow.com/questions/20063255/unable-to-post-message-to-http-www-youtube-com-recipient-has-origin-https-w

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!