Postman发送请求报JSON位置13处存在意外令牌j如何解决
问题解决方法
这个错误是服务端解析请求体时遇到了不符合JSON语法的内容导致的,按以下步骤排查修复:
1. 修正Postman请求配置
- 发送POST请求到
/signin接口时,Body标签页必须选择raw格式,右侧下拉菜单选择JSON,不要选Text/JavaScript等其他格式 - 填写的请求体必须严格符合JSON语法规范:
- 所有键必须用双引号包裹,不能用单引号,也不能省略引号
- 字符串值必须用双引号包裹
- 不允许添加注释
- 最后一个键值对末尾不能加多余逗号
正确的请求体示例:
{ "email": "erezrf@gmai.com", "password": "bananas" } - 检查Postman的Headers标签页,确认
Content-Type字段值为application/json,不要手动修改为其他值
2. 服务端代码优化(可选)
当前你使用的body-parser包功能已经被新版Express内置,你可以直接移除body-parser的引入和相关代码,替换为Express自带的JSON解析中间件,减少额外依赖:
// 替换掉 import bodyParser from 'body-parser' 和 app.use(bodyParser.json()) app.use(express.json())
3. 复杂场景排查
如果按上述操作还是报错,可以在JSON解析中间件前添加原始请求打印逻辑,查看实际收到的请求内容定位问题:
// 放在 app.use(bodyParser.json()) 或者 app.use(express.json()) 之前 app.use((req, res, next) => { let rawBody = '' req.on('data', chunk => rawBody += chunk) req.on('end', () => { console.log('收到的原始请求内容:', rawBody) next() }) })
启动服务后再次发送请求,查看控制台打印的原始内容,就能直接找到不符合JSON语法的位置。
内容的提问来源于stack exchange,提问作者Erezrf
相关产品推荐
相关产品推荐

