谷歌选择器拒绝加载错误"Failed to execute 'postMessage' on 'DOMWindow': The target origin provided"



我正在尝试加载Google Picker。

我正在使用此NPM软件包https://www.npmjs.com/package/google-picker

加载选择器时,出现了auth Windows,我可以选择我的Google帐户。

完成验证后,它试图打开Google Picker Iframe。

目前,iframe无法加载,我得到了错误

Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://docs.google.com') does not match the recipient window's origin

我已经搜索了此问题,许多解决方案说确保将您的域添加到Google Console的授权JS起源

我做到了!该域绝对是客户的授权域中。Google签名使用我的应用程序。但是我似乎无法让选择器上班。

我尝试过从本地主机和上传到服务器的运行。但是我遇到了同样的错误。

我正在使用的服务器是HTTPS。而且,选择器的iframe URL也是https。所以这不应该是问题。

我还能尝试什么?我是不可能的。我正好关注API。我放了所有正确的钥匙。

从此帖子答案中,引用了问题的问题是 https

我相信这是目标来源为 https的问题。我 怀疑这是因为您的iFrame URL使用http而不是 https。尝试更改您要嵌入的文件的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';
}

Google Picker未显示的原因实际上与控制台错误无关。

即使出现了控制台错误,选择器仍然有效。

,但我认为它不起作用,因为我正在使用与Google Picker发生冲突的CSS的Pickadate库。

有关该问题的更多信息:https://github.com/amsul/pickadate.js/issues/619

最新更新