【发布时间】:2014-05-13 04:22:39
【问题描述】:
我正在尝试通过 JavaScript 获取存储在 Google Drive 中的文件的内容。通过在我的浏览器中粘贴 URL(从 JSON 响应到列表查询的 webContentLink),我已经能够手动下载文件。 他们的 SDK 本身不支持这一点(get 命令只为您提供元数据),所以我正在尝试使用 jQuery,并遇到了一个 CORS 问题,即使我在创建 Google OAuth 时已将我的网站设置为来源客户 ID 和机密。我的代码是这样的:
$.ajax({
url: "https://docs.google.com/uc?id=0B-9B62bXdQ1nTFlwY0pveVgzOVU&export=download",
headers: {"Authorization": "Bearer " + gapi.auth.getToken().access_token}
})
我收到 405 Method not allowed 错误: https://docs.google.com/uc?id=0B-9B62bXdQ1nTFlwY0pveVgzOVU&export=download 405(方法不允许)jquery-2.1.1.min.js:4 XMLHttpRequest 无法加载 https://docs.google.com/uc?id=0B-9B62bXdQ1nTFlwY0pveVgzOVU&export=download。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问 Origin 'http://mydomain.com'。
根据this video,Google Drive 应该支持 CORS 请求。但是根据this bug,它不起作用。有没有办法在不使用服务器端代理或一些 iframe hack 的情况下做到这一点?
【问题讨论】:
-
使用 downloadUrl(用于外来文件类型)或 exportLinks(用于 google 文档类型)
-
我尝试切换到 downloadUrl(对于我上传的文本文件),但现在出现 403 禁止错误。我是否正确发送了身份验证令牌?
标签: google-drive-api