简体   繁体   English

error.response 在 catch axios 中未定义

[英]error.response is undefined in catch axios

My problem is error.response - undefined.我的问题是error.response - 未定义。 It happens because I have an interceptor:发生这种情况是因为我有一个拦截器:

instance.interceptors.response.use(undefined, error => {
  if (error.response.status === 401) {
    console.log("UNAUTHORIZED");
  }
});

If I remove the interceptor everything will work.如果我删除拦截器,一切都会起作用。 This is how I want to get the response from error:这就是我想从错误中获得响应的方式:

const fn = async stuff => {
  try {
    const res = await API.get('bla-bla-bla')
  } catch (e) {
    console.log(e.response) <------------------------- undefined
    if (e.response && e.response.status === 401) {
      console.log("UNAUTHORIZED");
    }
  }
}

In your interceptor you must return the error object with Promise.reject for it to be available later:在拦截器中,您必须使用 Promise.reject 返回错误对象,以便稍后可用:

instance.interceptors.response.use(undefined, error => {
  if (error.response.status === 401) {
    console.log("UNAUTHORIZED");
  }
  return Promise.reject(error);
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM