У меня есть документ в Firebase, который я хотел бы загрузить из моего веб-приложения. В моем приложении есть функция create()
, которая используется для загрузки и обработки документа: функция выглядит следующим образом:
create(){
var storageRef = storage.ref()
storageRef.child('master_doc/master.docx').getDownloadURL().then(function(url) {
// `url` is the download URL for 'images/stars.jpg'
// This can be downloaded directly:
var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.onload = function() {
var blob = xhr.response;
console.log("blob"+blob);
};
xhr.open('GET', url);
xhr.send();
// Or inserted into an <img> element:
var img = document.getElementById('myimg');
img.src = url;
}).catch(function(err) {
// Handle any errors
console.log(err.message);
});
}
Эта функция вызывается при нажатии кнопки. Когда я нажимаю кнопку, файл загружается. Но вместо заголовка документа загружается информация, которая выглядит следующим образом:
{
"name": "master_doc/master.docx",
"bucket": "ut-financial.appspot.com",
"generation": "1587569473372983",
"metageneration": "1",
"contentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"timeCreated": "2020-04-22T15:31:13.372Z",
"updated": "2020-04-22T15:31:13.372Z",
"storageClass": "STANDARD",
"size": "48007",
"md5Hash": "rQKxDlXPOVGNtM2qilIH/Q==",
"contentEncoding": "identity",
"contentDisposition": "inline; filename*=utf-8''master.docx",
"crc32c": "pZH0cg==",
"etag": "CLeGkZSt/OgCEAE=",
"downloadTokens": "b894d66e-e06b-4d5e-8139-273e0fe322e5"
}
И в консоли появляется сообщение об ошибке:
Доступ к XMLHttpRequest на 'http://127.0.0.1:9614/204'
(перенаправлено с 'https://firebasestorage.googleapis.com/v0/b/ut-financial.appspot.com/o/master_doc%2Fmaster.docx'
) из источника 'http://localhost:8080'
заблокировано политикой CORS: Ответ на предпечатный запрос не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».
Я установил CORS как для моего локального терминала, так и для облачной оболочки Google с JSON, указанным в документации:
[
{
"origin": ["*"],
"method": ["GET"],
"maxAgeSeconds": 3600,
}
]
Я попытался добавить заголовок
"Access-Control-Allow-Origin": "http://localhost:8080/"
, чтобы указать мой локальный адрес, но он все равно не работает. Любая помощь будет оценена. Спасибо