axios拦截器为什么会出错?

写了一个处理错误在拦截器中:

axios.interceptors.response.use(

response => {

if (response.status != 200) {

console.warn(

response.data.msg || `请求${response.request.toString()}错误`

);

return;

} else {

return response.data;

}

},

error => {

console.warn(`请求错误:${error}`);

return Promise.reject(error);

}

);

但是正常的请求也会进入error中

用postman测试是好的

这是为什么?如何解决

更新:
问题似乎不在拦截器中 我去掉拦截器还是会报一样的错:
image
image

阅读 2.5k
3 个回答

Promise 里抛出异常了,当然就会被 Promise.catch 捕获啊。

我举几个可能会抛异常的地方,你看下你处理了没:

image.png

if (response.status != 200) {
console.warn(
response.data.msg || `请求${response.request.toString()}错误`
);
return;
} else {
return response.data;
}

你这里是请求成功了,然后return,结果underfined.你应该是return Promise.reject(response)

没有更改Promise 状态 ,返回一个成功的Promise

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题