【问题标题】:Google API error, but still worksGoogle API 错误,但仍然有效
【发布时间】:2015-06-21 21:04:17
【问题描述】:

连接到 google drive API 时,我在本地主机上收到此控制台错误,但我在脚本中配置的选择器成功显示了我的驱动器的内容:

在“DOMWindow”上执行“postMessage”失败:提供的目标源(“https://docs.google.com”)与接收窗口的源(“http://localhost:8000”)不匹配。

加载“https://docs.google.com/picker?protocol=gadgets&origin=http%3A%2F%2Flocalho…2photos%22))&rpctoken=yxxydsx40r21&rpcService=2dngvfb4tj9x&thirdParty=true”时遇到无效的“X-Frame-Options”标头:“ALLOW-FROM http://localhost:8000”不是可识别的指令。标题将被忽略。

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

【问题讨论】:

  • 这个问题你解决了吗?
  • 我有同样的问题,即使应用程序在谷歌控制台中设置得很好(我的域在 oauth 部分注册)并且我在 https 网站中没有任何 http iframe @KRR 提供的链接。
  • 您要使用哪个 Google API?您是否尝试在 iframe 或其他窗口中加载 google 文档,然后与之通信?
  • 我认为它的浏览器问题。尝试使用最新版本的 chrome 并检查是否仍然存在。

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


【解决方案1】:

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

继续阅读:Wrong Origin using HTTPRequests

【讨论】:

    【解决方案2】:

    这是一个错误

    https://issuetracker.google.com/issues/177046274

    似乎有一些变通方法可供人们将其用作 Apps 脚本插件的一部分,参考此堆栈问题:

    Google Picker API Invalid origin value error

    虽然这对于使用 JavaScript 的官方 quickstart 不起作用。

    我已经用 Chrome 和 Firefox 对此进行了测试,结果都一样。

    如果这对您有影响,请务必在上面链接的问题上加注星标。

    【讨论】:

      【解决方案3】:

      在使用 Google API 时,我发现设置虚拟主机并将其添加到操作系统主机文件更容易。如果您知道如何设置自签名证书,它也会有所帮助。

      个人使用VagrantHomestead 设置我的所有项目,并启用 SSL 标志。这样我就可以使用 URL https://project.local/ 并且浏览器不会对 X-Frame-Options 抱怨太多

      要启用 SSL,请将 ssl: true 放在生成的 Homestead.yaml 文件中的 authorize: ~/.ssh/id_rsa.pub 下。默认情况下,证书将不受信任,因此您必须告诉操作系统您想要信任它。恐怕我不记得我上次是怎么做到的了。

      【讨论】:

        【解决方案4】:

        您必须控制 Google 的 HTTP 标头,确保使用有效选项 X-Frame-Options

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-11-12
          • 1970-01-01
          • 2017-06-17
          • 1970-01-01
          • 2021-12-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多