我正在尝试通过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黑客的情况下执行此操作?
答案 0 :(得分:0)
一旦我切换到使用最新的downloadUrl(此URL经常更改)并发送了授权标题,我就能够完美地获取文件的内容。