Axios POST请求数据无法获取,Node.js后端req.body显示undefined
问题原因及解决方法
核心问题:Axios请求参数使用错误
你在Axios配置里用body字段传递请求体,但Axios的POST请求中,承载请求体的字段是data而非body——这是Axios自身的API规范,和原生Fetch的参数规则不同。
修正后的前端代码
const res = await axios({ method: "POST", url: `http://127.0.0.1:8000/api/v1/chatGPT`, data: { // 将body替换为data chat: `hello how are you ?`, }, });
补充验证(可选)
如果修改后仍有异常,可确认后端是否配置了请求体解析中间件:
- 若使用Express框架,需在路由注册前添加:
app.use(express.json()); // 解析JSON格式请求体 // 若需处理表单数据,还需添加:app.use(express.urlencoded({ extended: true }));
不过你用Postman能正常获取req.body,说明后端解析中间件已配置正确,因此核心问题就是Axios的参数名错误。
内容的提问来源于stack exchange,提问作者Utkarsh Gupta
相关产品推荐
相关产品推荐

