응답 인터셉터 추가

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 axios from "axios";
import router from "@/router/index"; import { useToastStore } from '@s/toastStore';
const $api = axios.create({ const $api = axios.create({
baseURL: 'http://localhost:10325/api/', baseURL: 'http://localhost:10325/api/',
@ -30,13 +30,41 @@ $api.interceptors.request.use(
// 응답 인터셉터 추가하기 // 응답 인터셉터 추가하기
$api.interceptors.response.use( $api.interceptors.response.use(
function (response) { function (response) {
// 2xx 범위에 있는 상태 코드는 이 함수를 트리거 합니다. // 2xx 범위의 응답 처리
// 응답 데이터가 있는 작업 수행
return response; 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); return Promise.reject(error);
}); }
);
export default $api; export default $api;