assistant-todo/src/utils/axiosReq.ts

86 lines
3.2 KiB
TypeScript

import axios, {Canceler, CancelToken, CancelTokenSource} from "axios";
import {message} from "antd";
export const httpReq = axios.create({
// cancelToken: new CancelToken(function (cancel:Canceler) {
// },),
validateStatus: function (status) {
return status >= 200 && status < 300; // default
},
timeout: 10000,
timeoutErrorMessage: "网络连接超时",
withCredentials: false,
})
// 创建一个取消令牌
const cancelTokenSource: CancelTokenSource = axios.CancelToken.source();
// 默认json格式
httpReq.defaults.headers.common['Accept'] = 'application/json';
// 请求前处理
httpReq.interceptors.request.use((config) => {
// 从本地存储中获取 token
const token = localStorage.getItem('platform-security');
if (token) {
config.headers.Authorization = `Bearer ${token}`;
}
config.headers.set("source-client","web")
return config;
},
(error) => {
console.info("interceptors错误提示.request" + error)
return Promise.reject(error);
})
// 响应前处理
httpReq.interceptors.response.use(
(response) => {
// http请求最外层
if (response.status >= 500) {
message.error('系统异常');
} else if (response.status >= 400 && response.status <= 500) {
message.warning('无权限');
}else if(response.data.status.success == false){
message.error(response.data.status.message);
}
return response;
},
(error) => {
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);
}
console.info("interceptors.response错误提示" + error)
return Promise.reject(error);
}
);