axios.js
1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import axios from 'axios'
// 创建axios实例
const instance = axios.create({
baseURL: '/src/data', // 基础URL,根据实际环境配置
timeout: 10000, // 请求超时时间
headers: {
'Content-Type': 'application/json',
},
})
// 请求拦截器
instance.interceptors.request.use(
(config) => {
// 在发送请求之前做些什么
// 例如:添加token
// const token = localStorage.getItem('token');
// if (token) {
// config.headers.Authorization = `Bearer ${token}`;
// }
return config
},
(error) => {
// 对请求错误做些什么
console.error('Request error:', error)
return Promise.reject(error)
},
)
// 响应拦截器
instance.interceptors.response.use(
(response) => {
// 对响应数据做点什么
return response.data
},
(error) => {
// 对响应错误做点什么
console.error('Response error:', error)
if (error.response) {
switch (error.response.status) {
case 401:
// 未授权处理
break
case 404:
// 资源不存在处理
break
case 500:
// 服务器错误处理
break
default:
break
}
}
return Promise.reject(error)
},
)
export default instance