未能在“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
。
- 我不明白这个问题。 问题是什么?
- 我该如何解决?
我相信这是目标来源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无处不在”运行。 禁用扩展解决了我的问题。