如何将CORS添加到firebase-访问控制允许来源
设置firestore functions.https.onRequest,在我的前端错误上调用此命令请求的资源上不存在“Access Control Allow Origin”标头 尝试了很多其他的答案,但都没有成功。如何为谷歌云功能正确设置cors 在过去的3个小时里,我在网上尝试了大部分答案如何将CORS添加到firebase-访问控制允许来源,firebase,google-cloud-platform,cors,google-cloud-functions,Firebase,Google Cloud Platform,Cors,Google Cloud Functions,设置firestore functions.https.onRequest,在我的前端错误上调用此命令请求的资源上不存在“Access Control Allow Origin”标头 尝试了很多其他的答案,但都没有成功。如何为谷歌云功能正确设置cors 在过去的3个小时里,我在网上尝试了大部分答案 通过gsutil将cors收割台添加到铲斗(根据此答案)?我不知道这是不是别的原因,不过 阅读 我试着像下面这个函数示例那样做: 这是我使用cors中间件的尝试 const functions =
- 通过gsutil将cors收割台添加到铲斗(根据此答案)?我不知道这是不是别的原因,不过
- 阅读
- 我试着像下面这个函数示例那样做:
const functions = require('firebase-functions');
const cors = require('cors')({
origin: true
});
const admin = require('firebase-admin');
admin.initializeApp();
exports.exampleFunction = functions.https.onRequest(async (req, res) => {
return cors(req, res, () => {
// Forbidding PUT requests.
if (req.method === 'PUT') {
return res.status(403).send('Forbidden!');
}
//respond to CORS preflight requests
if (req.method == 'OPTIONS') {
res.status(204).send('');
return null
}
// code ...
res.sendStatus(200);
}
我不知道我做错了什么
我做错了什么?您提到在前端出现此错误-您是否在chrome中禁用了CORS以允许请求通过
链接:使用URL重写允许在您的域下提供该功能 好的,正确的解决方案是重写函数以使用域名,因此我们甚至不需要cors 在
firebase.json的hosting部分下,将以下内容添加到的“重写”部分的开头:
{
"source": "/api/functionName/**",
"function": "functionName"
},
我通过以下方式发出请求:
// send data to cloudfunction
var xhr = new XMLHttpRequest();
xhr.open('GET', "https://example.com/api/functionName/?param1="+ this.param1, true);
xhr.send();
这允许通过req.query.param1
获取云函数中的参数。我很困惑——你说你试图在云函数上设置CORS,但你引用的是一个bucket和云存储URL。是哪一个?使用已经对我起作用了,应该也能对您起作用,请阅读如何配置它。我也很困惑。所以我认为CloudStorageBucket中引用了云函数(因为有一个项目与我的firebase项目同名)。将在云功能中使用cors中间件重试。谢谢请看我更新的问题,我现在正在使用cors中间件,就像在示例函数中一样,但仍然得到错误。对不起,这不是我要找的。它需要在生产中为每个人工作。