Postman发送POST请求时,body里的JSON数据没传到后端怎么办? 设计师素红 提问于 2026-02-07 09:06:22 阅读 76 前端 在用Postman测试用户注册接口时,发现后端总是收到空对象… 我设置了请求体为raw JSON格式,参数写了 { "username": "test", "email": "test@example.com" } 但后端Node.js打印出来的req.body一直是空的。试过把Content-Type头设成application/json,也尝试过x-www-form-urlencoded格式都不行。明明在本地Postman测试GET请求没问题啊,这到底是哪里出错了? Postman 我来解答 赞 9 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 UE丶燕丽 Lv1 这问题我遇到过好多次了,新手特别容易踩这个坑。我来帮你一步步排查: 第一,确认Postman设置是否正确: 1. 在Postman的body选项卡里,确保选择了raw选项 2. 右上角下拉菜单要选JSON格式(不是Text) 3. 确认Content-Type头确实是application/json(Postman有时会偷偷改掉) 第二,Node.js后端这边,必须使用body解析中间件。如果你用的是Express,最常见的坑就是忘记加这行代码: const express = require('express'); const app = express(); // 必须加上这两行才能解析JSON请求体 app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.post('/register', (req, res) => { console.log(req.body); // 现在应该能正常输出了 }); 为什么需要中间件?因为HTTP请求体默认是二进制流,需要专门解析成JSON对象。Express 4.x版本后把body解析器拆分成独立中间件了,不像老版本内置。 如果还是不行,可以试试这个更健壮的方案: const bodyParser = require('body-parser'); app.use(bodyParser.json({ verify: (req, res, buf) => { try { JSON.parse(buf.toString()); } catch(e) { res.status(400).send('Invalid JSON'); throw new Error('Invalid JSON'); } } })); 这里加了JSON格式验证,能帮你发现请求体格式问题。 补充几个常见踩坑点: - 检查路由是否正确定义为POST方法 - 确保没有其他中间件修改了请求体 - 如果用到了代理或网关,检查是否有拦截修改 测试时可以先用最简单的代码验证: app.post('/test', (req, res) => { console.log('Headers:', req.headers); console.log('Raw body:', req.rawBody); res.send(req.body); }); 如果还是不行...那就该请咖啡了(开玩笑)。可以把Postman的完整请求截图和Node控制台输出发出来,我再帮你看看。 回复 点赞 1 2026-03-08 10:06 UX永莲 Lv1 试试这个:检查是否漏了中间件配置。Express需要加app.use(express.json())来解析JSON请求体。没有这个中间件,req.body会是空对象。 回复 点赞 8 2026-02-07 09:07 加载更多 相关推荐 2 回答 62 浏览 Postman发送JSON请求时,Body数据总是被转义怎么办? 在Postman测试接口时,我需要发送JSON格式的请求体,但发现Body里的双引号被自动转义成"了。比如输入{"name": "测试"},发送后服务器收到的是"name": "测试",导致接口报错。... 程序员兴瑞 工具 2026-02-10 09:12:33 2 回答 59 浏览 Postman发送JSON请求包含CSS样式字符串时返回400错误怎么办? 我在Postman里测试API时,发送POST请求的JSON数据里有一个字段需要包含CSS样式字符串,比如: body { background-color: #f0f0f0; font-family... 闲人俊蓓 前端 2026-02-14 20:28:06 1 回答 35 浏览 Postman数据驱动测试怎么读取外部JSON文件里的多组参数? 我在用Postman做接口的数据驱动测试,想从外部JSON文件里读取多组测试数据,但每次运行只跑第一条,后面的都没执行。是不是我的数据结构写错了? 我试过把JSON放在data里,也检查了Collec... Designer°爱娜 工具 2026-03-09 16:19:22 1 回答 22 浏览 Postman里怎么断言返回的JSON字段值是否正确? 我在用Postman测试接口,想验证返回的JSON里某个字段的值是不是我预期的,但写了断言老是不生效,不知道哪里写错了。 比如接口返回的是{"status": "success", "code": 2... 启航 工具 2026-03-30 20:12:13 2 回答 49 浏览 Postman 发送 POST 请求时 HTML 表单数据怎么传? 我在用 Postman 测试一个登录接口,后端是接收 HTML 表单格式的 POST 数据(Content-Type: application/x-www-form-urlencoded),但我试了好... ლ玉英 前端 2026-03-04 03:19:28 1 回答 58 浏览 Postman发送请求后端收不到Vue传的参数? 我在用 Vue 写登录功能,前端用 axios 发 POST 请求,但后端用 Postman 测试时能收到参数,我本地开发却收不到,到底是哪儿出问题了? 我试过把 Content-Type 改成 ap... 西门桂霞 前端 2026-03-26 11:19:22 1 回答 29 浏览 Postman导出的集合怎么在另一台电脑上导入不成功? 我用Postman把一个API集合导出成JSON文件了,换到公司另一台电脑想导入,结果点导入没反应,试了好几次都不行。 导出的时候选的是“Collection v2.1”,导入时也选了同样的格式,但就... 庆娇 工具 2026-03-22 15:32:23 2 回答 67 浏览 Postman 中如何正确发送带 Cookies 的请求? 我在用 Postman 调试一个需要登录态的接口,后端返回了 Set-Cookie,但后续请求好像没自动带上 Cookie。我手动在 Headers 里加了 Cookie 字段也不行,是不是哪里配置错... 书生シ静静 工具 2026-03-02 19:49:26 2 回答 32 浏览 Postman Collection Runner 里怎么获取上一个请求的响应数据? 我在用 Postman 的 Collection Runner 跑一组接口,第二个请求需要带上第一个请求返回的 token,但不知道怎么在 Runner 里把前一个响应的数据传给下一个请求。 我试过在... ლ素平 工具 2026-02-26 23:03:18 2 回答 51 浏览 Postman设置代理后请求被拦截,但直接访问正常? 我在用Postman测试API时配置了公司代理,但发送请求一直报错“Proxy Connection Refused”,而如果直接在浏览器访问同一接口却能正常返回数据。这是代理配置哪里出问题了? 我的... 打工人一可 工具 2026-01-25 22:03:25
第一,确认Postman设置是否正确:
1. 在Postman的body选项卡里,确保选择了
raw选项2. 右上角下拉菜单要选
JSON格式(不是Text)3. 确认Content-Type头确实是
application/json(Postman有时会偷偷改掉)第二,Node.js后端这边,必须使用body解析中间件。如果你用的是Express,最常见的坑就是忘记加这行代码:
为什么需要中间件?因为HTTP请求体默认是二进制流,需要专门解析成JSON对象。Express 4.x版本后把body解析器拆分成独立中间件了,不像老版本内置。
如果还是不行,可以试试这个更健壮的方案:
这里加了JSON格式验证,能帮你发现请求体格式问题。
补充几个常见踩坑点:
- 检查路由是否正确定义为POST方法
- 确保没有其他中间件修改了请求体
- 如果用到了代理或网关,检查是否有拦截修改
测试时可以先用最简单的代码验证:
如果还是不行...那就该请咖啡了(开玩笑)。可以把Postman的完整请求截图和Node控制台输出发出来,我再帮你看看。
app.use(express.json())来解析JSON请求体。没有这个中间件,req.body会是空对象。