未能在 “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.comhttps://www.youtube.comhttps://www.youtube.comhttp://localhost:9000

  1. 我不明白这个问题。问题出在哪里?
  2. 我该如何修复它?

答案 1

我认为这是目标原点的问题。我怀疑这是因为您的iFrame网址正在使用而不是.尝试将您尝试嵌入的文件的 URL 更改为 。httpshttphttpshttps

例如:

'//www.youtube.com/embed/' + id + '?showinfo=0&enablejsapi=1&origin=http://localhost:9000';

成为:

'https://www.youtube.com/embed/' + id + '?showinfo=0&enablejsapi=1&origin=http://localhost:9000';

答案 2

只需在播放器的属性中添加带有您网站URL的参数,如下所示:"origin"paramVars

this.player = new window['YT'].Player('player', {
    videoId: this.mediaid,
    width: '100%',
    playerVars: { 
        'autoplay': 1,
        'controls': 0,
        'autohide': 1,
        'wmode': 'opaque',
        'origin': 'http://localhost:8100' 
    },
}