imk*_*ost 5 javascript same-origin-policy x-frame-options google-drive-api
我有一个使用Google Drive API的JavaScript应用.我在这里阅读了如何打开标准共享对话框:https://developers.google.com/drive/web/manage-sharing
<head>
...
<script type="text/javascript" src="https://apis.google.com/js/api.js"></script>
<script type="text/javascript">
init = function() {
s = new gapi.drive.share.ShareClient('<MY_APP_ID>');
s.setItemIds(["<MY_FILE_ID>"]);
}
window.onload = function() {
gapi.load('drive-share', init);
}
</script>
</head>
<body>
<button onclick="s.showSettingsDialog()">Share</button>
</body>
Run Code Online (Sandbox Code Playgroud)
好像我做的一切都正确,当我点击我的share按钮时,对话框开始加载但无法加载.
在控制台中我看到:
Refused to display 'https://drive.google.com/share?...' in a frame
because it set 'X-Frame-Options' to 'SAMEORIGIN'.
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索了这个错误,我已经看到在SO和其他网站上有一些类似的问题,但它们没有帮助.我猜谷歌不允许自己在非谷歌网站的框架中("SAMEORIGIN"的原因).
如何在我的应用中打开共享对话框?
“在您的应用程序中启动 Google Drive 共享对话框”页面指出:
启动对话框的页面 URL 必须与为应用程序注册的打开 URL 具有相同的来源。
如果您随后查看此处“配置 Drive SDK”的说明,您可以看到“打开 URL”部分显示:
对于 Open URL,需要记住两件重要的事情:
- 确保为 Open URL 提供完全限定的域名 - localhost 将不起作用。
- 该 URL 必须属于您。应用程序注册完成后,您需要验证您对此网址的所有权,才能创建 Chrome 应用商店列表。有关详细信息,请参阅站点验证。
因此,启动对话框的页面与在 Google Drive SDK 设置中为应用程序注册的打开 URL 的来源不同。因此,要解决您的问题,请更正打开 URL,使其具有正确的 URL,即与打开 URL 具有相同来源的 URL。请注意,您可以通过https://console.developers.google.com/project更改 Google Drive SDK 设置。
并确保打开 URL 设置正确。您还需要将“MY_APP_ID”替换为您的 Drive SDK 应用 ID。您可以按照以下说明找到应用程序 ID:
| 归档时间: |
|
| 查看次数: |
5189 次 |
| 最近记录: |