node.js - Axios 发布请求正文只是服务器端的一个空对象(React - Axios - Node.js - Express)
问题描述
我试图向我的服务器发送一个发布请求并使用它:
let dataToReturn = {
method: "POST",
url: "http://localhost:9000/logData",
headers: { "testing" : "IT WORKED" },
body: {"hola" : 'testing to see if this counts'}
}
axios(dataToReturn)
它知道它会发送。我检查了检查器中的网络选项卡,可以看到它已发送,并且可以在服务器上执行 req.headers 并打印出标题。但是每当我尝试在服务器上记录 req.body 时,它只会打印出 '{}'
var body = {
firstName: 'testName',
lastName: 'testLastName'
};
axios.post('http://localhost:9000/logData', body)
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
当我执行“req.body”时,这有效 ^^ 并成功打印出正文 为什么上面的示例记录一个空对象?
这是路由在服务器端的样子
app.post('/logData', function(req, res) {
console.log('recieved post');
console.log(req.body);
res.sendStatus(200);
})
我承认我是一个菜鸟,这可能是一个愚蠢的问题,所以请原谅我的无知。如果您需要,也很乐意发布更多信息。
解决方案
您需要在请求的标头中添加内容类型。如下所述更改您的标头
标头:{“测试”:“它工作”,“内容类型”:“应用程序/json”},
推荐阅读
- html - 覆盖不覆盖整个标题
- angular - 当按无线电输入过滤时包含消息不显示匹配项
- visual-studio - 在特定端口上使用 Kestrel 时如何在 F5 上启动 url?
- math - 如果 X = 0 到 128 之间并且 Y = 0 并且接近 64 我如何计算出最小/最大 Theta 以便在 X < 0 或 > 128 之前 Y = 64
- scala - 在 Zeppelin 笔记本中本地运行 spark 作业时出错
- react-native - 从样式表反应本机访问状态
- c# - 错误模块名称:gdiplus.dll
- javascript - Djaty - 为什么使用 `Djaty.setUser()` 时受影响的用户数不准确?
- powerbi - 如何在 Power BI 中进行比较?
- sql - 获取除当前月份之外的所有日期值的查询结果