未能在“DOMWindow”上执行“postMessage”:https://www.youtube.com!== http:// localhost:9000

这是我得到的错误消息:

Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://www.youtube.com') does not match the recipient window's origin ('http://localhost:9000'). 

我已经看到其他类似的问题,其中目标来源是http://www.youtube.com和收件人来源是https://www.youtube.com ,但没有一个像我的目标是https://www.youtube.com和来源是http://localhost:9000

  1. 我不明白这个问题。 问题是什么?
  2. 我该如何解决?

我相信这是目标来源https 。 我怀疑这是因为你的iFrameurl是使用http而不是https 。 尝试更改您尝试embedded的文件的url为https

例如:

 var id = getId(url); return '//www.youtube.com/embed/' + id + '?showinfo=0&enablejsapi=1&origin=http://localhost:9000'; } 

成为:

 var id = getId(url); return 'https://www.youtube.com/embed/' + id + '?showinfo=0&enablejsapi=1&origin=http://localhost:9000'; } 

我认为这个错误的描述是误导性的,并且最初与玩家对象的错误使用有关。

切换到滑块中的新video时遇到同样的问题。

当简单地使用这里描述的player.destroy()函数时,问题就消失了。

尝试使用window.location.href的URL来匹配窗口的原点。

我有这个相同的问题,事实certificate,这是因为我的Chrome扩展“HTTPS无处不在”运行。 禁用扩展解决了我的问题。