使用fetch发起POST请求传参时后端req.body为空对象问题求助
错误1:前端fetch请求头配置字段拼写错误
fetch API的请求配置中,请求头对应的配置键是复数形式的headers,你的代码中误写为单数header,导致Content-Type: application/json配置不生效,浏览器默认将请求格式识别为text/plain,后端无法正确解析JSON格式的请求体,因此返回空对象。
修复后的请求配置如下:
const options = { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(visitor), };
错误2:后端未配置JSON请求体解析中间件
如果你使用的是Express/Koa等Node.js后端框架,默认不会自动解析application/json格式的请求体,需要手动注册解析中间件。
以Express为例,需要在路由注册前添加如下配置:
// 解析application/json格式的请求体 app.use(express.json())
补充排查点
你当前的POST请求被包裹在if (!user.eventId)的条件判断中,可先确认该条件是否正常触发,避免因逻辑分支未执行导致请求未发送。
内容的提问来源于stack exchange,提问作者Alim Bolar
相关产品推荐
相关产品推荐

