From 3c25c2a5177be5c11d250861c4c64ca2676700a3 Mon Sep 17 00:00:00 2001 From: ZhangXianQiang <1135831638@qq.com> Date: 星期二, 18 六月 2024 16:52:07 +0800 Subject: [PATCH] feat:请求封装 --- src/api/index.js | 75 +++++++++++++++++++++++++++++++++++++ 1 files changed, 75 insertions(+), 0 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index e69de29..d2351d2 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -0,0 +1,75 @@ +import axios from "axios"; +import { useRoute } from "vue-router"; +const route = useRoute(); +axios.defaults.headers["Content-Type"] = "application/json;charset=utf-8"; + +const service = axios.create({ + baseURL: import.meta.env.VITE_BASE_API_URL, + timeout: 15000, +}); + +/** + * 鑷畾涔夌姸鎬佺爜澶勭悊 + * @param {*} status 鐘舵�佺爜 + * @param {*} info 淇℃伅 + */ +const errorHandle = (status, info) => { + switch (status) { + case 400: + console.log("璇箟鏈夎"); + break; + case 401: + console.log("鏈嶅姟鍣ㄨ璇佸け璐�"); + route.replace('/login'); + break; + case 403: + console.log("鏈嶅姟鍣ㄦ嫆缁濊闂�"); + route.replace('/login'); + break; + case 404: + console.log("鍦板潃閿欒"); + break; + case 500: + console.log("鏈嶅姟鍣ㄩ亣鍒版剰澶�"); + break; + case 502: + console.log("鏈嶅姟鍣ㄦ棤鍝嶅簲"); + break; + default: + console.log(info); + break; + } +}; + + +// request鎷︽埅鍣� +service.interceptors.request.use( + (config) => { + + // const token = localStorage.getItem('authToken'); + // if (token) { + // config.headers['Authorization'] = `Bearer ${token}`; + // } + + return config; + }, + (error) => { + // 杩斿洖Promise.reject(error)锛岃繖鏍蜂細瑙﹀彂鍚庣画鐨勯敊璇鐞嗗櫒 + Promise.reject(error); + }, +); + +// response鎷︽埅鍣� +service.interceptors.response.use( + (res) => { + if (response.status === 200 && response.data.code === 200) return Promise.resolve(response.data); + else return Promise.reject(response.data); + }, + (error) => { + const { response } = error; + errorHandle(response.status, response.info); + return Promise.reject(error); + }, +); + +export default service; -- Gitblit v1.8.0