我正在尝试在按钮单击事件时从我的Firebase存储中下载文件,但它给我“访问控制允许起源”错误。
https://firebase.google.com/docs/storage/web/download-files
根据上面的链接,我正在尝试配置CORS。我安装了gsutil命令行工具。但是我找不到我需要复制此代码的cors. json文件
[
{
"origin": ["*"],
"method": ["GET"],
"maxAgeSeconds": 3600
}
]
然后我使用命令gsutil cors get gs://
是否需要先为存储桶创建CORS配置文件?
下面是我的按钮点击方法,以防错误在代码中。
downloadAttachment(fileName) {
var uid = AuthService.uid;
let storageRef = firebase.storage().ref().child('assignments/' + uid + '/' + fileName);
storageRef.getDownloadURL().then(url => {
console.log(url);
var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.onload = function (event) {
var blob = xhr.response;
};
xhr.open('GET', url);
xhr.send();
});
}
错误:
请求的资源上没有'Access-Control-Allow-Origin'标头。因此不允许访问http://localhost:4200。
谢谢。
是的,创建一个名为任何你想要的文件-如果你愿意,称之为cors. json
-并将您喜欢的CORS配置设置放在其中,然后像这样运行gsutil
:
gsutil cors set cors.json gs://<your-cloud-storage-bucket>/
这会将这些CORS配置设置上传到您的存储桶。之后,您可以随时使用gsutil cors get gs://检索当前设置
只需运行命令
gsutil cors set cors.json gs://<your-cloud-storage-bucket>
来自包含cors. json文件的目录。