feat: first commit
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
node_modules
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
import axios, { AxiosRequestConfig, AxiosResponse } from "axios";
|
||||||
|
import Cookies from "js-cookie";
|
||||||
|
|
||||||
|
// axios.defaults.baseURL = ""; // 请求后台地址
|
||||||
|
axios.defaults.headers.post["Content-Type"] = "application/json;charset=utf-8";
|
||||||
|
|
||||||
|
interface LogOutCodesProps {
|
||||||
|
status: number;
|
||||||
|
code: number;
|
||||||
|
msg?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
axios.interceptors.request.use(
|
||||||
|
(config: AxiosRequestConfig) => {
|
||||||
|
// token授权
|
||||||
|
const jwtToken: string = Cookies.get("Authorization") ?? "";
|
||||||
|
config.headers = config.headers || {};
|
||||||
|
config.headers.Authorization = `${jwtToken}`;
|
||||||
|
// 缓存问题
|
||||||
|
config.headers["Cache-Control"] = "no-cache";
|
||||||
|
return config;
|
||||||
|
},
|
||||||
|
(err) => {
|
||||||
|
return Promise.reject(err);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
axios.interceptors.response.use(
|
||||||
|
(response: AxiosResponse) => {
|
||||||
|
const xhr: any = response.data ?? {};
|
||||||
|
const { code, msg: resultMsg } = xhr;
|
||||||
|
// 需要退出重登的code和msg
|
||||||
|
let msg: string = "";
|
||||||
|
switch (code) {
|
||||||
|
case 9:
|
||||||
|
msg = "请重新登录";
|
||||||
|
break;
|
||||||
|
case 18:
|
||||||
|
msg = "授权过期,请重新登录";
|
||||||
|
break;
|
||||||
|
case 27:
|
||||||
|
msg = "未安装License或License已过期";
|
||||||
|
break;
|
||||||
|
case 28:
|
||||||
|
msg = "License权限不足";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (code) {
|
||||||
|
// ElMessage.error(msg || resultMsg || "系统异常");
|
||||||
|
axios.prototype.error(msg || resultMsg || "系统异常");
|
||||||
|
}
|
||||||
|
return xhr;
|
||||||
|
},
|
||||||
|
(error) => {
|
||||||
|
const response: any = error.response ?? {};
|
||||||
|
const { data, status } = response;
|
||||||
|
const { code, reason } = data;
|
||||||
|
let msg: string = "";
|
||||||
|
// 获取错误提示
|
||||||
|
switch (status) {
|
||||||
|
case 400:
|
||||||
|
msg =
|
||||||
|
code === 17
|
||||||
|
? `异地登录,登录IP为${data.data},请重新登录`
|
||||||
|
: "请求错误";
|
||||||
|
break;
|
||||||
|
case 401:
|
||||||
|
msg = reason || "鉴权失败";
|
||||||
|
break;
|
||||||
|
case 403:
|
||||||
|
msg = "拒绝访问";
|
||||||
|
break;
|
||||||
|
case 404:
|
||||||
|
msg = "请求错误,未找到该资源";
|
||||||
|
break;
|
||||||
|
case 405:
|
||||||
|
msg = "请求方法未允许";
|
||||||
|
break;
|
||||||
|
case 408:
|
||||||
|
msg = "请求超时";
|
||||||
|
break;
|
||||||
|
case 413:
|
||||||
|
msg = "请求数据过多";
|
||||||
|
break;
|
||||||
|
case 500:
|
||||||
|
msg = "服务器端出错";
|
||||||
|
break;
|
||||||
|
case 501:
|
||||||
|
msg = "网络未实现";
|
||||||
|
break;
|
||||||
|
case 503:
|
||||||
|
msg = "服务不可用";
|
||||||
|
break;
|
||||||
|
case 504:
|
||||||
|
msg = "网络超时";
|
||||||
|
break;
|
||||||
|
case 505:
|
||||||
|
msg = "http版本不支持该请求";
|
||||||
|
break;
|
||||||
|
case 502:
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// ElMessage.error(msg);
|
||||||
|
axios.prototype(msg);
|
||||||
|
return Promise.reject(error).catch(() => {
|
||||||
|
if (401 == status) {
|
||||||
|
window.location.href = "/";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
axios.prototype.error=(msg)=>{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export default axios;
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"name": "funjia-axios",
|
||||||
|
"private": true,
|
||||||
|
"version": "0.0.1",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "vite --port=4444",
|
||||||
|
"build": "vite build",
|
||||||
|
"preview": "vite preview --port=4444"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"axios": "^0.26.1",
|
||||||
|
"js-cookie": "^3.0.1"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/lodash-es": "^4.17.6",
|
||||||
|
"@types/node": "^17.0.25",
|
||||||
|
"typescript": "^4.5.4"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||||
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
||||||
|
"@types/lodash-es@^4.17.6":
|
||||||
|
version "4.17.12"
|
||||||
|
resolved "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz#65f6d1e5f80539aa7cfbfc962de5def0cf4f341b"
|
||||||
|
integrity sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==
|
||||||
|
dependencies:
|
||||||
|
"@types/lodash" "*"
|
||||||
|
|
||||||
|
"@types/lodash@*":
|
||||||
|
version "4.17.15"
|
||||||
|
resolved "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.15.tgz#12d4af0ed17cc7600ce1f9980cec48fc17ad1e89"
|
||||||
|
integrity sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw==
|
||||||
|
|
||||||
|
"@types/node@^17.0.25":
|
||||||
|
version "17.0.45"
|
||||||
|
resolved "https://registry.npmmirror.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190"
|
||||||
|
integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==
|
||||||
|
|
||||||
|
axios@^0.26.1:
|
||||||
|
version "0.26.1"
|
||||||
|
resolved "https://registry.npmmirror.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9"
|
||||||
|
integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==
|
||||||
|
dependencies:
|
||||||
|
follow-redirects "^1.14.8"
|
||||||
|
|
||||||
|
follow-redirects@^1.14.8:
|
||||||
|
version "1.15.9"
|
||||||
|
resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1"
|
||||||
|
integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==
|
||||||
|
|
||||||
|
js-cookie@^3.0.1:
|
||||||
|
version "3.0.5"
|
||||||
|
resolved "https://registry.npmmirror.com/js-cookie/-/js-cookie-3.0.5.tgz#0b7e2fd0c01552c58ba86e0841f94dc2557dcdbc"
|
||||||
|
integrity sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==
|
||||||
|
|
||||||
|
typescript@^4.5.4:
|
||||||
|
version "4.9.5"
|
||||||
|
resolved "https://registry.npmmirror.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
|
||||||
|
integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
|
||||||
Reference in New Issue
Block a user