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); } );