首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Firebase检索数据时发生错误

从Firebase检索数据时发生错误
EN

Stack Overflow用户
提问于 2019-02-15 11:19:30
回答 1查看 267关注 0票数 0

嗨,我把我的mp3文件存储在Firebase的存储中。将“规则”选项卡下的权限设置为:

代码语言:javascript
运行
复制
      allow read, write, request;

为了从那里获取文件,我使用了react axios。

加载页面时,会收到请求被CORD策略阻止的错误:

代码语言:javascript
运行
复制
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,然后运行命令:

代码语言:javascript
运行
复制
gsutil cors set cors.json gs://****.appspot.com

运行此命令时没有发现任何错误。

这是cors.json文件:

代码语言:javascript
运行
复制
[ 
 {
  "origin": ["http://localhost:3000","gs://******.appspot.com"],
  "method": ["GET"],
  "maxAgeSeconds": 3600
 }
]

然而,当我加载我的网站时,我仍然会遇到同样的错误.

EN

Stack Overflow用户

发布于 2019-02-15 11:50:12

由于错误消息状态,因此只允许对某些协议进行跨源请求。这是在大多数浏览器中实现的一种安全措施。如果您对这种策略是什么感兴趣的话,在科德勒密上有一篇很好的文章。

我建议的解决该问题的方法是在该主机上设置一个后端api服务器,让它从db查询所需的信息,添加必要的CORS头,并将其发送到运行前端的浏览器。

您可以使用node.js使用express.js来实现这一点。请参阅下面的例子。

代码语言:javascript
运行
复制
const cors = require('cors');
const express = require('express');
const app = express();

function getmusicfunction(req, res) {
  console.log('GET /getmusic');
  # query the db for your file here and store it into your body bariable
  res.send(body);
}

const corsOptions = {
  origin: '*',
  optionsSuccessStatus: 200,
};

app.use(cors(corsOptions));
app.get('/getmusic', (req, res) => getmusicfunction(req, res));

const port = 6667;
app.listen(port, () => console.log('API listening on port ' + port + '!'));

编辑:我把Firebase和Firebird混淆了。抱歉的。我收回答案。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54708205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档