我收到错误
没有 'Access-Control-Allow-Origin' 标头在请求的资源上存在。Origin 'https://MY-Firebase-APP.Firebaseapp.com' 因此不允许访问。
从我的Firebase存储访问json文件时。下面是存储
的规则service firebase.storage {
service firebase.storage {
match /b/paystumped.appspot.com/o {
match /{allPaths=**} {
allow read, write: if true;
}
}
}
该应用程序也是由Firebase托管的。这是消防基地。当我运行'firebase deploy'
{
"hosting": {
"public": "dist",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"headers": [
{
"source": "**/*",
"headers": [
{
"key": "Access-Control-Allow-Origin",
"value": "*"
}
]
},
{
"source": "**/*.@(jpg|jpeg|gif|png)",
"headers": [
{
"key": "Cache-Control",
"value": "max-age=7200"
}
]
},
{
"source": "404.html",
"headers": [
{
"key": "Cache-Control",
"value": "max-age=300"
}
]
}
],
"cleanUrls": true,
"trailingSlash": false
}}
我确信有一些琐碎的CORS设置要做,使此工作
在阅读了CORS并理解了它应该如何工作之后,我在这里找到了所需的答案。https://stackoverflow.com/a/37765371/4360863
firebase存储策略是由google提供的实用程序配置的。
如果你在flutter web中遇到这个问题,只需运行额外的参数来渲染html,这将解决CROS问题。
flutter run -d chrome --web-renderer html