当我在html文件上进行get调用时,我的Firebase存储上出现了正常的cors错误:
Request header field Access-Control-Allow-Origin is not allowed by Access-Control-Allow-Headers in preflight response.
我正在使用axios进行通话:
axios.get('https://firebasestorage.googleapis.com/v0/b/xxxxx-xxxxx.appspot.com/o/files%2Fsigning%2F148%2F459.html?alt=media&token=f3be2ef2-a598-4c30-a77b-8077e8b1f7bc',
{
headers: {'Access-Control-Allow-Origin': '*',}
)
我已将访问权限设置为公开:
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write;
}
}
}
当我加载图像时,这种相同的设置工作正常,但它给了我存储的html文件的错误。关于如何解决它的任何想法?
Firebase使用与Google Cloud相同的存储基础架构,即使没有Firebase方法来设置cors规则,您也可以使用gc设置。首先,您需要安装google cloud sdk:
curl https://sdk.cloud.google.com | bash
重新启动shell:
exec -l $SHELL
初始化gcloud。这将要求您选择帐户并进行身份验证。
gcloud init
然后创建一个具有以下内容的json文件
[
{
"origin": ["http://example.appspot.com"],
"responseHeader": ["Content-Type"],
"method": ["GET", "HEAD", "DELETE"],
"maxAgeSeconds": 3600
}
]
并使用您的firebase storage gc:端点运行它
gsutil cors set yourFile.json gs://yourProject
那也应该为您解决问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句