import axios from 'axios' // 创建axios实例 const api = axios.create({ baseURL: process.env.NEXT_PUBLIC_API_URL || 'http://localhost:3001/api', timeout: 10000, headers: { 'Content-Type': 'application/json', }, }) // 请求拦截器 api.interceptors.request.use( (config) => { // 可以在这里添加token等认证信息 // 检查是否在浏览器环境中 if (typeof window !== 'undefined') { const token = localStorage.getItem('token') if (token) { config.headers.Authorization = `Bearer ${token}` } } return config }, (error) => { return Promise.reject(error) } ) // 响应拦截器 api.interceptors.response.use( (response) => { // 处理后端API的响应格式: { code: number, message: string, data: any } const { code, message, data } = response.data if (code !== 200) { return Promise.reject(new Error(message || '请求失败')) } return data // 返回data部分 }, (error) => { if (error.response?.status === 401) { // 处理未授权 - 仅在浏览器环境中执行 if (typeof window !== 'undefined') { localStorage.removeItem('token') window.location.href = '/login' } } return Promise.reject(error) } ) export default api