我正在以这样的角度形式发出 http 请求:
this.http.post(this.endPoint, formData, { responseType: 'text' }).subscribe(
res => {
console.log(res);
}
)
我有一个简单的云功能:
const functions = require('firebase-functions');
const cors = require('cors')({ origin: true });
exports.test = functions.https.onRequest((req, res) => {
cors(req, res, () => {
const data = req.body;
res.send(`Hello from Firebase! ${data}`);
});
})
但是 req.body 不起作用,我得到了这个回复:
Firebase 向您问好! [对象对象]
知道为什么会发生这种情况吗?
如果您尝试打印
req.body
值,您首先必须将其从 JavaScript 对象转换为字符串:
res.send(`Hello from Firebase! ${JSON.stringify(data)}`);
我发现了问题:当我从 Angular 表单发布请求时,我在标题中添加了
'Content-Type': 'multipart/form-data'
。
弗兰克的答案可能更接近您正在寻找的内容。
或者,如果您只想打印特定属性:
您正在使用模板文字将 req.body 注入字符串中。由于 req.body (或本例中的数据)是一个对象,因此您必须从中提取要显示的值,如
req.body.prop
。
Firebase 快速入门中的此示例显示了从请求正文中提取属性。
尝试使用
const data = req.rawRequest.body;
看看是否有帮助