我有一个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”标头。很长一段时间以来,我都没有对相关代码进行任何更改,所以我对为什么突然停止工作一无所知。是否有人对此问题的根源有任何见识?