前端请求服务器状态码400错误,为什么没有返回json错误信息?

1.postman测试
发送登录请求,正常用户名密码,可以收到返回值
image.png
密码错误的登录请求
image.png
用postman测试都是正常的

2.网页实际登录的时候
正常登录,返回结果同postman返回结果
image.png

问题 密码错误返回的结果是undefined

image.png
image.png
image.png
小白想知道怎么获得返回的具体错误?
试过把res.status(400)去掉直接用res.json就能获得返回错误,但是这样又不好判断await login的结果到底是正确的还是错误的返回...
求大佬帮忙提供思路❥(^_-)

阅读 4.6k
3 个回答

不知道你前端的 AJAX 是咋封装的。

如果是用了 axios 之类的 AJAX 库,默认非 2XX 响应是进到 catch 里的。

你可以自己写一个拦截器处理这个问题(推荐);或者重写它的 validateStatus 属性(不推荐)。

try catch了,console.log(ret)打不出来的。就算改成Promise去then catch应该也是打不出结果的。你可以尝试获取一下原始的响应实例。

如果是axios,你的响应拦截处应该

// 响应拦截
Http.interceptors.response.use(
  (response) => {
    return response.data;
  },
  (error) => {
    if (error && error.response) return Promise.reject(error.response.data);
    return Promise.reject(error);
  }
);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题