Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

error.response is undefined in catch axios

My problem is error.response - undefined. 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");
    }
  }
}
like image 481
Arthur Avatar asked Nov 28 '25 23:11

Arthur


1 Answers

In your interceptor you must return the error object with Promise.reject for it to be available later:

instance.interceptors.response.use(undefined, error => {
  if (error.response.status === 401) {
    console.log("UNAUTHORIZED");
  }
  return Promise.reject(error);
});
like image 94
arm Avatar answered Nov 30 '25 11:11

arm



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!