You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决JavaScript通过Axios发请求时服务端无法获取req.body的问题

问题原因

你的前端Axios请求明确设置了Content-Type: application/json,发送的是JSON格式的请求体,但服务端仅配置了解析application/x-www-form-urlencoded类型请求的中间件,完全没处理JSON类型的请求,导致服务端无法解析请求体,req.body自然为空。而Postman发送请求时,你大概率选择了匹配服务端解析格式的选项(如form-data或x-www-form-urlencoded),所以能正常获取参数。

解决方案

针对服务端配置做以下修改:

方案1:使用bodyParser添加JSON解析

在现有urlencoded解析中间件后,添加JSON解析中间件:

app.use(bodyParser.urlencoded({extended: true}))
// 新增JSON解析中间件
app.use(bodyParser.json())

注意:如果你的项目还没安装bodyParser,需要先执行npm install body-parser安装依赖。

方案2:使用Express内置解析(Express 4.16.0+)

Express 4.16.0及以上版本已经内置了bodyParser的功能,无需额外安装包,直接替换为:

app.use(express.urlencoded({extended: true}))
app.use(express.json())

额外提示:Axios默认会将JavaScript对象序列化为JSON,并自动设置Content-Type: application/json,所以前端代码里的headers配置其实可以省略,不影响请求发送。

内容的提问来源于stack exchange,提问作者c321321sda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 23:45:22