axios response interceptors

이승민·2021년 10월 5일
0
post-custom-banner

로그인 시 axios response interceptors 사용 sample

axiosInstance.interceptors.response.use(
  (response) => {
    return response;
  },
  (error) => {
  // error.response가 없을 경우를 제일 상단에 작성
  // error message에 'timeout'이 들어가있거나 응답 코드가 500일 경우 서버 에러 alert 노출
    if (error.message.includes("timeout") || error.response?.status === 500) {
      alert("서버 에러가 발생했습니다. 잠시 후 재시도해주시기 바랍니다.");
    }
    const errorStatus = error.response?.status;
    const errorMsg = error.response?.data.detail;
    const errorUrl = error.response?.config.url;
    
    if (error.response?.config.url.includes("login")) {
      if (errorStatus === 400) {
        alert(errorMsg);
      }
    }
    // compile error 화면을 보여주지 않기 위해 promise reject
    return Promise.reject(error);
  }
);
profile
프론트 앤드 개발자를 꿈꿉니다.
post-custom-banner

0개의 댓글