如何在未经身份验证的情况下通过XHR(CORS)访问公共Google云端硬盘文件?

And*_*ers 6 javascript xmlhttprequest cors google-drive-api

我需要一个HTML页面才能XMLHttpRequest在Javascript中使用(XHR)访问Google云端硬盘文件而无需身份验证(因此我的用户无需登录或拥有Google帐户).这些文件具有"任何有链接"的权限.由于这些文件是为世界开放的(有链接),我不明白为什么允许跨源资源共享(CORS)是一个问题.

downloadUrl需要验证,所以我想这是不是一个可行的选择.我也看了一下webViewLink,我想这些文件要求"在网上公开" - 在搜索引擎中出现等等,我想.这对我来说也不是一个可行的选择.我需要这些文件的"任何有链接"权限.最有希望的链接是webContentLink,根据http://googleappsdeveloper.blogspot.se/2012/08/5-things-you-didnt-know-you-could-do.html允许公开和未经身份验证的访问.

webContentLink遇到的问题是它似乎不是CORS友好的.我在Chrome中使用XHR的尝试失败了(非常默默).我没有添加任何标题.

我尝试curl使用--header "Origin: http://www.hello.se"以及使用和不使用--header "Access-Control-Request-Method: GET"导致HTTP/1.1 302 Moved Temporarily重定向到短期内容URL.问题是重定向响应没有Access-Control-Allow-Origin标头的迹象,这是启用CORS所必需的.

有什么我可以做的不同让这个工作?

否则谷歌SDK团队,你能使webContentLink公共文件(不需要cookie认证)使CORS友好吗?

pin*_*yid 0

您可以尝试使用 JS Google API 客户端。它通过下载代理 iframe 来绕过 CORS 限制。