blob: 1eaad87311a7321f3f435e35d93ba86508698b98 [file] [log] [blame]
San3yuan4d0e8032025-04-04 17:21:40 +08001import axios from 'axios'
2import type { AxiosRequestConfig, AxiosResponse } from 'axios'
3
4const instance = axios.create({
5 baseURL: process.env.API_BASE_URL,
6 timeout: 10000,
7 headers: {
8 'Content-Type': 'application/json'
9 }
10 })
11
12 // 请求拦截器
13 instance.interceptors.request.use(
14 (config) => {
15 // 添加认证 token
San3yuan6f2ed692025-04-16 20:24:49 +080016 const token = localStorage.getItem('token')
San3yuan4d0e8032025-04-04 17:21:40 +080017 if (token) {
18 config.headers.Authorization = `Bearer ${token}`
19 }
20 return config
21 },
22 (error) => {
23 return Promise.reject(error)
24 }
25 )
26
27 // 响应拦截器
28 instance.interceptors.response.use(
29 (response) => {
30 console.log('Response:', response)
31 // 统一处理响应数据格式
32 if (response.status === 200) {
33 return response.data
34 }
35 return Promise.reject(response.data)
36 },
37 (error) => {
38 // 统一错误处理
39 console.error('API Error:', error.response?.status, error.message)
40 return Promise.reject(error)
41 }
42 )
43
44export default instance