Сбой Google Drive API. Файлы: получить ответ CORS error - PullRequest
1 голос
/ 21 февраля 2020

У меня есть веб-приложение, которое полагается на сохранение файлов на Google Drive и последующее извлечение их с сервера. Я использую Google API Javascript Client и использую код, подобный примеру Google Drive API, для получения файла. Я использую запрос к службе Google API get для получения метаданных файла, а затем использую downloadUrl этого файла, содержащуюся в метаданных, чтобы запросить этот файл через XmlHttpRequest, получая маркер доступа из API Google.

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, поскольку ответ API Google не содержит заголовка «Access-Control-Allow-Origin». Я не вносил изменений в соответствующий код в течение длительного времени, поэтому я не понимаю, почему это внезапно перестало работать. У кого-нибудь есть понимание источника этой проблемы?

...