为 Firebase 云功能启用 Cors
Posted
技术标签:
【中文标题】为 Firebase 云功能启用 Cors【英文标题】:Enable Cors for Firebase Cloud Functions 【发布时间】:2018-08-27 07:00:12 【问题描述】:我正在尝试为我的 http 云函数启用 cors。但是,即使关注this example that uses cors,尝试fetch
时,它仍然给我错误:
对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。
这是我的云功能:
const functions = require('firebase-functions');
const cors = require('cors')(origin: true);
exports.foo = functions.https.onRequest((req, res) =>
return cors(req, res, () =>
let format = req.query.format;
if (!format)
format = req.body.format;
//do stuff
);
);
这是我获取的方式:
fetch("https://us-central1-my-database.cloudfunctions.net/foo",
method: "POST",
body: JSON.stringify(data),
headers:
"Content-Type": "application/json"
).then((res) =>
// ...
).catch((err) =>
// ...
);
为什么 cors 不起作用,我该如何解决?
【问题讨论】:
试着看看这个案例:(***.com/questions/49178210/…),它非常相似,它有一个答案,解释了如何在 Firebase Cloud 功能上启用 CORS。 【参考方案1】:尝试使用带有 default parameters 的 cors
"origin": "*",
"methods": "GET,HEAD,PUT,PATCH,POST,DELETE",
"preflightContinue": false,
"optionsSuccessStatus": 204
在您的情况下,您只需要更改一行:
// code...
// const cors = require('cors')(origin: true);
const cors = require('cors')();
// code...
【讨论】:
以上是关于为 Firebase 云功能启用 Cors的主要内容,如果未能解决你的问题,请参考以下文章
错误:HTTP 错误 400,请求有错误。 Firebase Firestore 云函数
firebase - 从可调用云函数访问数据库时应用检查失败
如何在 Play 商店中发布的 apk 中启用 Firebase 云消息传递
Firebase 的云功能 - 即使我正在为 firebase-admin 功能发出出站 http 请求,也会出现网络错误