2024-11-21 09:48:47 -05:00
|
|
|
import axios, {Canceler, CancelToken, CancelTokenSource} from "axios";
|
2024-11-29 06:24:50 -05:00
|
|
|
import {message} from "antd";
|
2024-11-21 09:48:47 -05:00
|
|
|
|
|
|
|
|
|
|
|
export const httpReq = axios.create({
|
|
|
|
// cancelToken: new CancelToken(function (cancel:Canceler) {
|
|
|
|
// },),
|
2024-11-29 06:24:50 -05:00
|
|
|
validateStatus: function (status) {
|
|
|
|
return status >= 200 && status < 300; // default
|
|
|
|
},
|
|
|
|
timeout: 2000,
|
|
|
|
timeoutErrorMessage: "网络连接超时",
|
2024-11-21 09:48:47 -05:00
|
|
|
withCredentials: false,
|
|
|
|
})
|
|
|
|
// 创建一个取消令牌
|
|
|
|
const cancelTokenSource: CancelTokenSource = axios.CancelToken.source();
|
2024-11-29 06:24:50 -05:00
|
|
|
// 默认json格式
|
2024-11-21 09:48:47 -05:00
|
|
|
httpReq.defaults.headers.common['Accept'] = 'application/json';
|
2024-11-29 06:24:50 -05:00
|
|
|
// 请求前处理
|
2024-11-25 05:28:24 -05:00
|
|
|
httpReq.interceptors.request.use((config) => {
|
2024-11-29 06:24:50 -05:00
|
|
|
// 从本地存储中获取 token
|
|
|
|
const token = localStorage.getItem('platform-security');
|
2024-11-25 05:28:24 -05:00
|
|
|
if (token) {
|
2024-11-29 06:24:50 -05:00
|
|
|
config.headers.Authorization = `Bearer ${token}`;
|
2024-11-25 05:28:24 -05:00
|
|
|
}
|
|
|
|
return config;
|
|
|
|
},
|
|
|
|
(error) => {
|
2024-11-29 06:24:50 -05:00
|
|
|
console.info("interceptors错误提示.request" + error)
|
2024-11-25 05:28:24 -05:00
|
|
|
return Promise.reject(error);
|
|
|
|
})
|
2024-11-29 06:24:50 -05:00
|
|
|
// 响应前处理
|
2024-11-25 05:28:24 -05:00
|
|
|
httpReq.interceptors.response.use(
|
|
|
|
(response) => {
|
|
|
|
// http请求最外层
|
|
|
|
if (response.status >= 500) {
|
2024-11-29 06:24:50 -05:00
|
|
|
message.error('系统异常');
|
2024-11-25 05:28:24 -05:00
|
|
|
} else if (response.status >= 400 && response.status <= 500) {
|
2024-11-29 06:24:50 -05:00
|
|
|
message.warning('无权限');
|
2024-11-25 05:28:24 -05:00
|
|
|
}
|
|
|
|
return response;
|
|
|
|
},
|
|
|
|
(error) => {
|
2024-11-29 06:24:50 -05:00
|
|
|
if (axios.isCancel(error)) {
|
|
|
|
message.error('连接取消');
|
|
|
|
} else if (axios.isAxiosError(error)) {
|
|
|
|
console.error('Axios Error:', error.message);
|
|
|
|
if (error.response) {
|
|
|
|
if (error.response.status >= 500) {
|
|
|
|
message.error('系统异常');
|
|
|
|
} else if (error.response.status >= 400 && error.response.status <= 500) {
|
|
|
|
message.warning('无权限');
|
|
|
|
window.location.href = '/login';
|
|
|
|
}
|
|
|
|
// switch (error.response.status) {
|
|
|
|
// case 401:
|
|
|
|
// localStorage.removeItem('authToken');
|
|
|
|
// window.location.href = '/login';
|
|
|
|
// break;
|
|
|
|
// case 403:
|
|
|
|
// console.error('Forbidden:', error.response.data);
|
|
|
|
// break;
|
|
|
|
// case 404:
|
|
|
|
// console.error('Not Found:', error.response.data);
|
|
|
|
// break;
|
|
|
|
// case 500:
|
|
|
|
// console.error('Internal Server Error:', error.response.data);
|
|
|
|
// break;
|
|
|
|
// default:
|
|
|
|
// console.error('Unknown Error:', error.response.data);
|
|
|
|
// break;
|
|
|
|
// }
|
|
|
|
} else {
|
|
|
|
message.error('No Response:' + error.message);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
console.error('Unknown Error:', error);
|
2024-11-25 05:28:24 -05:00
|
|
|
}
|
2024-11-29 06:24:50 -05:00
|
|
|
|
|
|
|
console.info("interceptors.response错误提示" + error)
|
2024-11-25 05:28:24 -05:00
|
|
|
return Promise.reject(error);
|
|
|
|
}
|
|
|
|
);
|