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

MEAN API POST请求JSON解析错误排查求助

解决前端POST请求JSON解析错误的问题

看起来你的问题出在前端发送的请求数据格式不符合后端的JSON解析要求,虽然你设置了contentType: 'application/json',但jQuery的$.ajax方法在处理data参数时,如果你传入的是普通JavaScript对象,它默认会把数据编码成application/x-www-form-urlencoded格式,而不是真正的JSON字符串——这就导致后端的Express在尝试解析请求体时失败,直接触发了JSON解析错误,所以你的后端代码里的console.log根本没机会执行。

修复步骤:

把data参数里的对象用JSON.stringify()转换成JSON字符串,这样请求体才会是标准的JSON格式,后端才能正确解析:

修改后的前端代码:

$.ajax({ 
  type: 'POST', 
  contentType: 'application/json', 
  // 关键修改:用JSON.stringify把对象转成JSON字符串
  data: JSON.stringify({ 
    "email": "myEmail@students.berkeley.net", 
    "password": "isilly" 
  }), 
  dataType: 'json', 
  success: function(data){ 
    runMySuccessFunction(data); 
  }, 
  error: function(){ 
    alert("failed"); 
  }, 
  url: 'https://notmyrealurl.herokuapp.com/veggiegang/api/users' 
}); 

为什么ARC测试正常?

因为ARC这类工具会严格按照你设置的Content-Type来发送对应的格式数据,你在ARC里应该是直接输入了JSON格式的请求体,所以后端能正常解析。

额外检查(可选)

确保你的Express后端已经配置了express.json()中间件(用来解析JSON请求体),如果还没加的话,在你的后端代码里加上:

app.use(express.json());

不过从你用ARC测试正常来看,这个应该已经配置过了,但还是确认一下更稳妥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:13:38