【发布时间】:2019-02-15 11:19:30
【问题描述】:
您好,我将 mp3 文件存储在 Firebase 的 Storage 中。将规则选项卡下的权限设置为:
allow read, write, request;
为了从那里获取文件,我使用 react-axios。
当我加载我的页面时,我收到一条请求已被 CORD 策略阻止的错误:
Access to XMLHttpRequest at
'gs://******.appspot.com/****/****' from origin 'http://localhost:3000'
has been blocked by CORS policy: Cross origin requests are only
supported for protocol schemes: http, data, chrome, chrome-extension,
https.
我安装了 gsutil,然后运行了命令:
gsutil cors set cors.json gs://****.appspot.com
我在运行此命令时没有收到任何错误。
这是 cors.json 文件:
[
{
"origin": ["http://localhost:3000","gs://******.appspot.com"],
"method": ["GET"],
"maxAgeSeconds": 3600
}
]
但是,当我加载我的网站时,我仍然收到同样的错误...
【问题讨论】:
-
规则看起来不太好。参考官方文档正确设置:firebase.google.com/docs/storage/security/start#sample-rules
-
目前我不关心身份验证,所以它们很好
-
也许你不在乎,但规则的语法不正确。如果您确定身份验证不会阻止上传/下载,则使用文件引用的
.getDownloadURL()方法获取用于检索文件的有效 URL(它将具有 https: 协议,而不是 gs:)。
标签: javascript reactjs firebase axios