// src/utils/request.ts import axios, { AxiosInstance, InternalAxiosRequestConfig } from 'axios'; // 从环境变量读取基础 URL const BASE_URL = import.meta.env.VITE_API_BASIC console.log('API Basic URL:',import.meta.env.VITE_API_BASIC); console.log('All env:', import.meta.env); // 创建 axios 实例 const request: AxiosInstance = axios.create({ baseURL: BASE_URL, timeout: 10000, // 10 秒超时 withCredentials: true, // 跨域请求时发送 cookies headers: { 'Content-Type': 'application/json', }, }); // 请求拦截器(可选:加 token、loading 等) request.interceptors.request.use( (config: InternalAxiosRequestConfig) => { // 例如:从 localStorage 获取 token const token = localStorage.getItem('token'); if (token) { config.headers.Authorization = `Bearer ${token}`; } return config; }, (error) => { return Promise.reject(error); } ); // 响应拦截器(统一处理错误、code 等) request.interceptors.response.use( (response) => { // 假设后端返回格式为 { code: 200, data: ..., message: '' } const { code, data, message } = response.data; if (code === 1) { return data; } else { // 可抛出业务错误 return Promise.reject(new Error(message || '请求失败')); } }, (error) => { // 网络错误 or 超时等 return Promise.reject(error.response.data); } ); export default request;