下载带有文件的downloadUrl结果CORS问题的google驱动器文件最近发生

问题描述 投票:0回答:1

我使用javascript客户端API上传和下载Google驱动器文件。它以前很棒。但是最近之后(也许在20/02/2020之后)成功上传文件,但是当我下载文件时,发生了CORS问题。

我可以成功获取文件元信息。

var request = gapi.client.drive.files.get({
    'fileId': fileId
});

然后我使用XMLHttpRequest下载它,但出现以下错误:

从源'https://00e9e64bacc0efeebb87d2a0887d78885bda74a4be7b94651f-apidata.googleusercontent.com/download/drive/v2/files/1E'对从'https://content.googleapis.com/drive/v2/files/1E...&alt=media&source=downloadUrl ..'重定向到'https://example.com ..”的XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:否' Access-Control-Allow-Origin'标头出现在所请求的资源上。

下载代码:

var xhr = new XMLHttpRequest();
    xhr.open('GET', file.downloadUrl);
    xhr.responseType = "text";
    xhr.setRequestHeader('Authorization', 'Bearer ' + access_token);
    if(start!=undefined){
        var end = length? (start+length-1):'';
        xhr.setRequestHeader('Range', 'bytes='+start+'-'+end);
    }
    xhr.onload = function() {
        if(callback)callback(xhr.responseText); 
    };
    xhr.onerror = function(e) {
        if(callback)callback(e);
    };
    xhr.send();

任何建议或解决方法将不胜感激。

javascript api download cors drive
1个回答
0
投票

此处存在相同问题:文件导出(例如Google表格)仍在工作,但文件下载(如PDF)不再起作用。通过XMLHttpRequest调用文件downloadUrl导致接收到对另一个CORS调用失败的downloadURL的重定向。

问题不是特定于Chrome的,因此似乎与Google API行为的变化更相关

© www.soinside.com 2019 - 2024. All rights reserved.