使用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);
});