| import axios, { type AxiosResponse } from "axios"; |
| |
| // 为所有auth外请求添加token头 |
| axios.interceptors.request.use((config) => { |
| const requestUrl = config.url; |
| if (requestUrl?.includes("/auth/")) { |
| config.url = requestUrl.replace("/auth/","/"); |
| } else { |
| const token = localStorage.getItem('token'); |
| config.headers['token'] = `${token}`; |
| } |
| return config; |
| }, (error) => { |
| return error; |
| } ); |
| |
| |
| // 统一响应拦截器 |
| axios.interceptors.response.use( |
| (response: AxiosResponse) => { |
| const { code, msg, data } = response.data; |
| |
| return { |
| ...response, // 保留原本的响应信息 |
| data: { |
| code, |
| message: msg, |
| data, |
| ...response.data |
| }, |
| }; |
| }, |
| (error) => { |
| return { |
| ...error.response, // 保留原本的错误响应信息 |
| data: { |
| code: -1, |
| message: error.message || '请求失败', |
| data: null, |
| success: false, |
| }, |
| }; |
| } |
| ); |
| |
| export default axios |