Google云端硬盘API失败。文件:获取响应CORS错误

时间:2020-02-21 17:09:53

标签: javascript api cors drive

我有一个Web应用程序,该应用程序依赖于将文件保存到Google云端硬盘,然后再从服务器中检索它们。我正在使用Google API Javascript Client并使用与Google Drive API示例相似的代码来检索文件。我使用对Google API获取服务的请求来检索文件元数据,然后使用元数据中包含的该文件的downloadUrl通过XmlHttpRequest请求该文件,并从Google API中获取访问令牌。

getContents = function(fileId,callbackFunction) {
    var request = gapi.client.drive.files.get({ fileId : fileId});
    request.execute(function(metadata) {
        if(metadata.downloadUrl) {
            var connection = new haxe.Http(metadata.downloadUrl);
            var accessToken = gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse(true).access_token;
            connection.setHeader("Authorization","Bearer " + accessToken);
            connection.async = true;
            connection.onData = function(data) {
                callbackFunction(metadata,haxe.io.Bytes.ofString(data));
            };
            connection.onError = function(error) {
                callbackFunction(metadata,null);
            };
            connection.request(false);
        }
    });
}

截至昨天,Google API检索文件时已停止工作。我可以很好地获取文件元数据,但是当请求downloadUrl时,它会被CORS策略阻止,因为Google API响应中不包含“ Access-Control-Allow-Origin”标头。很长一段时间以来,我都没有对相关代码进行任何更改,所以我对为什么突然停止工作一无所知。是否有人对此问题的根源有任何见识?

0 个答案:

没有答案