응답 인터셉터 추가

This commit is contained in:
yoon 2025-02-10 14:41:37 +09:00
parent 8427dce4cc
commit 6704f5531a

View File

@ -1,5 +1,5 @@
import axios from "axios";
import router from "@/router/index";
import { useToastStore } from '@s/toastStore';
const $api = axios.create({
baseURL: 'http://localhost:10325/api/',
@ -30,13 +30,41 @@ $api.interceptors.request.use(
// 응답 인터셉터 추가하기
$api.interceptors.response.use(
function (response) {
// 2xx 범위에 있는 상태 코드는 이 함수를 트리거 합니다.
// 응답 데이터가 있는 작업 수행
// 2xx 범위의 응답 처리
return response;
}, function (error) {
// 2xx 외의 범위에 있는 상태 코드는 이 함수를 트리거 합니다.
// 응답 오류가 있는 작업 수행
},
function (error) {
const toastStore = useToastStore()
// 오류 응답 처리
if (error.response) {
switch (error.response.status) {
case 401:
toastStore.onToast('아이디 혹은 비밀번호가 틀렸습니다.', 'e');
break;
case 403:
toastStore.onToast('접근 권한이 없습니다.', 'e');
break;
case 404:
toastStore.onToast('요청한 페이지를 찾을 수 없습니다.', 'e');
break;
case 500:
toastStore.onToast('서버 오류가 발생했습니다.', 'e');
break;
default:
toastStore.onToast('알 수 없는 오류가 발생했습니다.', 'e');
}
} else if (error.request) {
// 요청이 전송되었으나 응답을 받지 못한 경우
toastStore.onToast('서버와 통신할 수 없습니다.', 'e');
} else {
// 요청 설정 중에 오류가 발생한 경우
toastStore.onToast('요청 중 오류가 발생했습니다.', 'e');
}
return Promise.reject(error);
});
}
);
export default $api;