前端请求数据返回500,如何处理?

请求正确,后端也能接收到数据,也能返回state==ok,就是前端显示500,没有接收到后端返回的正确提示。image.png

param是这样的数据

{   
   total: prepaidFreight.value,
   order_type: orderType.value,
   postSize: {
      id: 1,
      name: "张三",
      msg: [1, 2, 3],
      offer: [{
         id: "1",
         name: "2"
      }, {
         id: "33",
         name: "23"
      }]
   }
};

success提示成功了,但返回

image.png

跟后端返回的不一样,没有捕捉到result,变为msg了。

image.png

奇怪了,renderJson不行,要像红圈那样写才行?为啥呢?

image.png

评论区

北流家园网

2024-08-10 21:35

无意中发现,前台传参数时,如果含有null的就报错,将null改为""就可以了,这是个什么鬼逻辑?有人知道吗?
这个JSON会报错,statuscode=500,a4为null:
{"a1":"a1","a2":{"b1":"b1","b2":[1,2,3]},"a3":[{"c1":"c2","c2":1},{"c1":"c2","c2":1}],"a4":null}

这个不报错,正常返回statuscode=200:
{"a1":"a1","a2":{"b1":"b1","b2":[1,2,3]},"a3":[{"c1":"c2","c2":1},{"c1":"c2","c2":1}],"a4":""}

杜福忠

2024-08-11 21:03

}catch(Exception e){ 捕捉后的异常,没做异常 e输出啊,直接renderErr(e);返回了。
其中 renderErr 方法是你项目自定义的方法,里面估计是做了 json对象包装 返回的,所以前端拿到的也是http 200 状态。

分析控制台信息:能打印出 outputData ,说明 Ret 对象的 toJson()方法是没问题的,原因可能是你项目的 BaseController 有重写renderJson(Object object)使用了自定义的 JOSN 工具。

可以改为 renderJson(data.toJson()); 试试

北流家园网

2024-08-18 07:59

@杜福忠 谢谢,已解决

热门反馈

扫码入社