1 import axios from 'axios'
2
3 // 定义常见的错误
4 const TOKEN_ERROR = 'token认证失败,请重新登录'
5 const NETWORK_ERROR = '网络异常,请检查网络后重试'
6
7 // 创建axios实例
8 // let baseUrl = '/'
9 // if (process.env.NODE_ENV === 'production') { // 开发环境下的地址
10 // baseUrl = 'loaclhost:3000'
11 // } else if (process.env.NODE_ENV === 'development') { // 上线环境下的地址
12 // baseUrl = 'www.qichawang.cn'
13 // }
14
15 const server = axios.create({
16 baseURL: baseUrl,
17 timeout: 10000
18 })
19
20 // 拦截器 -> 请求前先拦截进行操作判断
21 server.interceptors.request.use((config) => {
22 // 根据需求判断是否token验证
23 if (config.headers.token === true) {
24 // 进行token验证操作
25 }
26 return config
27 // 必须返回才会执行下一步
28 }, (error) => {
29 return Promise.resolve(error)
30 })
31
32 // 响应拦截器
33 server.interceptors.response.use((response) => {
34 // 例如 针对不同的状态码进行判断
35 if (response.data.code === 400) {
36 return response.data.msg
37 }
38 }, (error) => {
39
40 })
41
42 /*
43 为什么要封装
44 - 根据状态码判断
45 - token携带判断
46 - 方便
47
48 */
49
50 export default server