Axios错误处理:显示服务端给的错误信息

479 阅读1分钟

使用response拦截器axios.interceptors.response.use(responseHandler, errorHandler)注入处理器,可处理返回信息。

其中,responseHandler是HTTP2XX下的正常处理逻辑,对返回数据做统一处理;

errorHandler是HTTP非2XX下的处理,比如500,同时可能服务端还给了错误相关的返回信息,如下:

{

    "code": 4,

    "message": "查询超时,请缩小时间范围或精确查询条件重新查询"

}

此时,要想显示服务端给的message信息,应该这么拿error.response?.data?.message,其中error是errorHandler的第一个参数。

另外注意,请求实例的catch在这个errorHandler后执行。

request.then((res) => {

    // 处理HTTP2XX下的正常返回,在拦截器responseHandler之后

  })

    .catch((err) => {

    // 处理HTTP非2XX下的返回,在拦截器errorHandler之后

      console.log('error', err);

    });

参考:axios-http.com/docs/interc…