Arthur
Arthur

Reputation: 3506

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");
    }
  }
}

Upvotes: 3

Views: 4270

Answers (1)

arm
arm

Reputation: 145

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

Upvotes: 2

Related Questions