无法通过Javascript从Google Drive SDK获取GET文件

时间:2014-05-13 04:22:39

标签: google-drive-api

我正在尝试通过JavaScript获取存储在Google云端硬盘中的文件内容。我已经能够通过在我的浏览器中粘贴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方法不允许错误: 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”标头。因此,不允许原点“http://mydomain.com”访问。

根据this video,Google云端硬盘应支持CORS请求。但根据this bug,它不起作用。有没有办法在不使用服务器端代理或某些iframe黑客的情况下执行此操作?

1 个答案:

答案 0 :(得分:0)

一旦我切换到使用最新的downloadUrl(此URL经常更改)并发送了授权标题,我就能够完美地获取文件的内容。