我在访问谷歌驱动器选择器时遇到以下错误,但是选择器正确显示没有任何错误.
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
此外,我已经提到这个问题谷歌驱动器选择器 - 开发人员密钥无效错误,但我认为谷歌api有一些变化,所以这件事不起作用.
代码段 -
var picker = new google.picker.PickerBuilder() .setLocale(lkGoogleSettings.locale) .setOAuthToken(accessToken) .setCallback(pickerResponse) .setOrigin(lkGoogleSettings.origin);
谢谢
正如一些评论者提到的那样,该X-Frame-Option
错误是中的已知错误Chrome
。您可以在这里看到有关它的长时间讨论。
现在,针对真正的问题:origin matching
。不论是否将localhost与端口一起使用,Google Drive都不能很好地运行,无论您是否将其添加到您的客户端ID权限的源中。
但是,有希望。如果您在主机文件中设置了一个指向localhost的域,则可以将该域添加到您在Google App控制台中的源中,一切都会按预期进行!
我一直这样做,以测试我的应用程序。例如:
添加dev.mysite.com
到您的目录hostfile
(在Mac中为 / etc / hosts )。
将域复制到您的选取器应用程序的权限中Google App Console
,您应该一切顺利。
使用dev.mysite.com:80
* 启动站点,驱动器选择器现在应该可以正常运行。
*注意:您必须在端口80上服务。Google根本无法在端口上使用它,因此,当您转到自己的站点时,该地址必须dev.mysite.com
没有端口。