谷歌API错误,但仍然有效

时间:2015-04-15 18:33:15

标签: javascript google-api google-drive-api google-picker

在连接到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;不是公认的指令。标题将被忽略。

我是否会忽略这一点,还是会给我带来麻烦?

4 个答案:

答案 0 :(得分:1)

这是CORS跨源资源共享问题。您将需要在服务器上添加CORS,以便它设置正确的标头。 What is CORS and how to solve

继续阅读:Wrong Origin using HTTPRequests

答案 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主机文件中。如果您知道如何设置自签名证书,那么也会很有帮助。

使用VagrantHomestead并在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