Flatter firebase存储CORS问题

Flatter firebase存储CORS问题,firebase,flutter-web,Firebase,Flutter Web,我正在使用firebase存储的免费计划。所有工作正常,但图像没有加载到我的颤振网络 我得到了这个错误 Access to XMLHttpRequest at 'https://firebasestorage.googleapis.com/v0/b/sap-app-8318e.appspot.com/o/cover%2Fimage_cropper_028D7F16-0161-4E90-B40D-EE47D310F322-5339-000003697F67306C.jpg?alt=media&am

我正在使用firebase存储的免费计划。所有工作正常,但图像没有加载到我的颤振网络

我得到了这个错误

Access to XMLHttpRequest at 'https://firebasestorage.googleapis.com/v0/b/sap-app-8318e.appspot.com/o/cover%2Fimage_cropper_028D7F16-0161-4E90-B40D-EE47D310F322-5339-000003697F67306C.jpg?alt=media&token=313475a9-9728-4e61-97da-f5d5534bb008' from origin 'https://sap.nextcardpro.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
firebasestorage.googleapis.com/v0/b/sap-app-8318e.appspot.com/o/cover%2Fimage_cropper_028D7F16-0161-4E90-B40D-EE47D310F322-5339-000003697F67306C.jpg?alt=media&token=313475a9-9728-4e61-97da-f5d5534bb008:1
我在谷歌上搜索,每个人都告诉我需要允许从firebase访问CORS,但我怎么才能添加它呢。但我如何才能将其添加到我的免费firebase计划中

[
    {
      "origin": ["*"],
      "responseHeader": ["Content-Type"],
      "method": ["GET", "HEAD", "DELETE"],
      "maxAgeSeconds": 3600
    }
]

最后,在谷歌搜索2天后,通过本文解决


最后,在谷歌搜索两天后,通过本文解决


从上面的链接中回答:

如果您已经熟悉谷歌云服务和工具,如gcloud和/或gsutil,您还可以查看谷歌关于CORS的文档

登录到您的谷歌云控制台:。点击右上角的“激活谷歌云外壳”(见下图):

窗口底部将显示一个shell终端,其中gcloud和gsutil已经可用。执行如下所示的命令。它创建一个json文件,该文件是为您的bucket设置cors配置所需的。此配置将允许每个域使用浏览器中的XHR请求访问您的bucket:
echo'[{“origin”:[“*”],“responseHeader”:[“Content Type”],“method”:[“GET”,“HEAD”],“maxagesonds”:3600}]>cors config.json

如果要限制对一个或多个特定域的访问,请将它们的URL添加到数组中,例如:
echo'[{“origin”:[“https://yourdomain.com“],“responseHeader”:[“Content Type”],“method”:[“GET”,“HEAD”],“maxAgeSeconds”:3600}]”>cors config.json

在以下命令中将
您的_BUCKET_NAME
替换为您的实际BUCKET NAME,以更新您的BUCKET中的cors设置
gsutil cors set cors-config.json gs://您的_BUCKET_NAME

要检查是否一切正常,可以使用以下命令获取存储桶的cors设置:
gsutil cors get gs://YOUR_bucket\u NAME

您可以在项目Firebase控制台的存储面板中找到bucket ID:

Firebase控制台的存储面板 它是以
gs://
开头的值


从上面的链接中回答:

如果您已经熟悉谷歌云服务和工具,如gcloud和/或gsutil,您还可以查看谷歌关于CORS的文档

登录到您的谷歌云控制台:。点击右上角的“激活谷歌云外壳”(见下图):

窗口底部将显示一个shell终端,其中gcloud和gsutil已经可用。执行如下所示的命令。它创建一个json文件,该文件是为您的bucket设置cors配置所需的。此配置将允许每个域使用浏览器中的XHR请求访问您的bucket:
echo'[{“origin”:[“*”],“responseHeader”:[“Content Type”],“method”:[“GET”,“HEAD”],“maxagesonds”:3600}]>cors config.json

如果要限制对一个或多个特定域的访问,请将它们的URL添加到数组中,例如:
echo'[{“origin”:[“https://yourdomain.com“],“responseHeader”:[“Content Type”],“method”:[“GET”,“HEAD”],“maxAgeSeconds”:3600}]”>cors config.json

在以下命令中将
您的_BUCKET_NAME
替换为您的实际BUCKET NAME,以更新您的BUCKET中的cors设置
gsutil cors set cors-config.json gs://您的_BUCKET_NAME

要检查是否一切正常,可以使用以下命令获取存储桶的cors设置:
gsutil cors get gs://YOUR_bucket\u NAME

您可以在项目Firebase控制台的存储面板中找到bucket ID:

Firebase控制台的存储面板 它是以
gs://
开头的值


好极了!你救了我的命。谢谢好极了!你救了我的命。谢谢