Google驱动器选择器错误

时间:2015-12-29 17:45:20

标签: javascript angularjs google-api google-picker

我在访问谷歌驱动器选择器时遇到以下错误,但是选择器正确显示而没有任何错误。

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

Invalid 'X-Frame-Options' header encountered when loading 'https://docs.google.com/picker?protocol=gadgets&origin=http%3A%2F%2Flocalho…%3Atrue%7D))&rpctoken=e2x1eop3h1rr&rpcService=2qeo0ns6gu13&thirdParty=true': 'ALLOW-FROM http://localhost' is not a recognized directive. The header will be ignored.

PSB我的开发者控制台的截图

http://screencloud.net/v/6431

我也提到了这个问题Google Drive Picker - Developer Key is Invalid Error,但我认为google api有一些变化,所以这个问题没有用。

代码段 -

var picker = new google.picker.PickerBuilder()
                             .setLocale(lkGoogleSettings.locale)
                             .setOAuthToken(accessToken)
                             .setCallback(pickerResponse)
                             .setOrigin(lkGoogleSettings.origin);

由于

1 个答案:

答案 0 :(得分:4)

正如一些评论员所提到的,X-Frame-Option错误是Chrome中的已知错误。您可以看到有关它的长时间讨论here

现在,对于真正的问题:origin matching。无论是否将您的客户端ID权限添加到您的原点,Google云端硬盘都无法使用localhost,无论是否有端口。

然而,有希望。如果您在主机文件中设置域以指向localhost,则可以在Google App控制台中将域添加到您的源,并且一切都按预期工作!

我一直这样做是为了测试我的应用程序。例如:

  1. dev.mysite.com添加到hostfile Mac 中的/ etc / hosts)。
  2. Google App Console中为您的选择器应用程序的权限复制域名,您应该好好去。
  3. 使用dev.mysite.com:80 *启动您的网站,并且驱动器选择器现在应该正常运行。
  4. *注意:您必须在端口80上投放。谷歌根本不适合使用端口,因此当您访问您的网站时,地址必须为dev.mysite.com且没有端口。