【发布时间】:2017-11-26 22:55:05
【问题描述】:
我正在使用 google drive api,我正在尝试从 url 下载文件,将其设置为变量并将其发送到后端。请注意,我使用 Google Drive 的 javascript 选择器。
旁注:首先我尝试将id_token 和fileId 发送到后端并尝试访问该文件,但我无法通过相关范围对用户进行身份验证,因为用户在 javascript 而非 php 中进行了身份验证。
所以我决定用 axios 获取文件并将其保存到一个变量中,然后将文件发送到我的后端。
var downloadUrl = typeof file.exportLinks !== 'undefined' ?
file.exportLinks['application/pdf'] : file.webContentLink
axios.get(downloadUrl, {
headers: {
Authorization: 'bearer ' + gapi.client.getToken().access_token,
'Access-Control-Allow-Origin': '*'
}
}).then(function (response) {
console.log(response)
}).catch(function (error) {
console.log(error);
});
我试过用这个,但是这个会抛出
无法加载https://drive.google.com/uc?id=aba123bab23r24-m9_Mp4aiDcnibNf&export=download:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://deftfax.app' 因此不允许访问。
使用 axios,如何从 url 下载文件并将其设置为变量?
【问题讨论】:
-
未经用户许可,Google 不会允许这样做。见developers.google.com/drive/v3/web/about-auth
标签: javascript vue.js google-api google-drive-api