在连接到google drive API时,我在本地主机上出现此控制台错误,但我在脚本中配置的选择器成功显示了我的驱动器内容:
无法执行' postMessage'在' DOMWindow':提供的目标来源(' https://docs.google.com')与收件人窗口的来源不匹配(' http://localhost:8000 &#39)
。无效的X-Frame-Options'加载时遇到标题' https://docs.google.com/picker?protocol=gadgets&origin=http%3A%2F%2Flocalho ... 2photos%22))& rpctoken = yxxydsx40r21& rpcService = 2dngvfb4tj9x& thirdParty = true':' ALLOW-FROM http://localhost:8000&# 39;不是公认的指令。标题将被忽略。
我是否会忽略这一点,还是会给我带来麻烦?
答案 0 :(得分:1)
这是CORS跨源资源共享问题。您将需要在服务器上添加CORS,以便它设置正确的标头。 What is CORS and how to solve
答案 1 :(得分:1)
https://issuetracker.google.com/issues/177046274
对于将其用作 Apps Script Add-on 的一部分的人来说,似乎有一些解决方法,参考此堆栈问题:
<块引用>Google Picker API Invalid origin value error
虽然这不适用于使用 JavaScript 的官方 quickstart。
我已经用 Chrome 和 Firefox 对此进行了测试,两者都给出了相同的结果。
如果这对您有影响,请务必在上面链接的问题上加星标。
答案 2 :(得分:0)
使用Google API时,我发现更容易设置虚拟主机并将其添加到OS主机文件中。如果您知道如何设置自签名证书,那么也会很有帮助。
使用Vagrant和Homestead并在SSL标志启用的情况下个人设置我的所有项目。这样,我可以使用URL https://project.local/
,而浏览器也不会抱怨X-Frame-Options
要启用SSL,请将ssl: true
放在生成的authorize: ~/.ssh/id_rsa.pub
文件的Homestead.yaml
下。默认情况下,证书不会被信任,因此您必须告诉操作系统您要信任它。恐怕我不记得上一次我做得怎么样了。
答案 3 :(得分:-1)
您必须控制Google的HTTP标头,请务必使用有效选项 X-Frame-Options