【问题标题】:Can't GET file from Google Drive SDK in Javascript无法从 Javascript 中的 Google Drive SDK 获取文件
【发布时间】: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


【解决方案1】:

一旦我切换到使用最新的downloadUrl(这个URL经常变化)并发送授权头,我就可以完美地获取文件的内容了。

【讨论】:

  • 什么是“downloadUrl”,如何获得?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多