How to direct error > 500 with Axios Interceptor

Viewed 91

How to direct error response with Axios Interceptor. I used axios interceptor for all http requests!

the expectation is that when the server error 500, 501 etc, will be redirected to route "/500"

export const request = axios.create({ baseURL: BASE_URL_API });
request.interceptors.request.use(
  async (config: AxiosRequestConfig) => {
    try {
      const token = GetCookie('token');      

      config.headers = {
        Authorization: `Bearer ${token}`,
      };
      return config;
    } catch (errorConfig) {
      return Promise.reject(errorConfig);
    }
  },
  error => {
    return Promise.reject(error);
  },
);

// Add a response interceptor
request.interceptors.response.use(
  response => {
    return response;
  },
  async (error: AxiosError) => { 
    const status = error.response?.status;
    try {
      if (status === 401 && error.response?.data.error.message === "Full authentication is required to access this resource" ) {
        RemoveCookie('token')
        RemoveCookie('_currentUser')
        window.location.href = '/';
      } else {
        return Promise.reject(error);
      }
      return Promise.reject(error);
    } catch (errorValue) {
      return Promise.reject(errorValue);
    }
  },
);
0 Answers
Related