由于CORS,未经身份验证无法读取公共云端硬盘文件内容

时间:2018-07-16 03:00:51

标签: google-drive-api

我的应用程序需要在任何人进行身份验证之前从Google云端硬盘上的JSON文件读取数据,以便在应用程序中公开显示数据。

该JSON文件是公共的(任何具有共享链接的人都可以查看),所以我尝试使用webContentLink来获取数据,但是由于CORS标头不存在于请求的资源中而失败了。

对此也有类似的问题(例如this),但这些问题来自几年前,我似乎找不到很好的答案。

我是否可以通过其他方式无需身份验证即可访问公共文件?谢谢。

2 个答案:

答案 0 :(得分:0)

如果文件是公共文件,则可以使用api key进行读取。应用程序将此密钥作为key = API_key参数传递给所有API请求。

如果文件存储在您控制的帐户中。然后,您还可以根据使用的语言使用service account

答案 1 :(得分:0)

鉴于如果您使用XMLHttpRequest,则无法绕开CORS,并且公开配置文件密钥违反安全性和服务协议,但是通过链接可以看到文件本身,则您可以实现目标通过另一种方法。

您可能可以使用JSONP来完成它。 但我希望Google文档中不允许进行开放式编辑,否则会带来安全风险。

您也可以将文件加载为纯文本文件。 您可以使用两种可能性:iframe或嵌入。 如果这样做,您可能希望将页面的该部分隐藏起来,但是一旦文件被加载,那么下一个任务就是找到它并使用javascript解析它。

这里有两个有关从嵌入中读取数据的链接。

How to access the content of the "embed" tag in HTML

...并从上面的链接中引用...

http://xn--dahlstrm-t4a.net/svg/html/get-embedded-svg-document-script.html

如果您执行embed / iframe路由,则必须自己处理解析,但随后可以处理安全性。