liuying
2024-10-23 7903954e19f91f5213d60535a22438cfe10df1a7
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import axios from "axios";
 
//不同环境下的地址
let baseURL = "";
//node中的环境变量process.env,也就是我们新增开发、生产的配置文件
// if(process.env.NODE_ENV === "development"){
//     baseURL = "http://localhost:7788/"  //这里可在vue.config.js做一个代理【代理代码见下】
// }else{
   //   baseURL = "http://localhost:7788/api"
    baseURL = "http://192.168.216.203:7788/api"  // 线上环境地址
// }
// baseURL = "http://localhost:7788/api" //本地测试环境
 
//创建axios实例
const request = axios.create({
    timeout: 5000,
    baseURL:baseURL
});
 
//所有请求设置了授权头信息【请求头中设置cookie信息,一直携带,判权】
// axios.defaults.headers.common['Authorization'] = `${cookie}`;
//这里是设置发送json格式参数
axios.defaults.headers.post['Content-Type'] = 'application/json';
 
//请求拦截器
request.interceptors.request.use(
    //发送之前想要做些什么
    config => {
        // token是否过期,是否重新登陆等等
        // 此处可修改一些基本数据
        // config[baseURL,[data,[headers,[method,[timeout,[url]   等
        //        基础地址,请求参数,头部, 请求方式, 超时,  请求地址  等
 
        // config.headers.Cookie = "110110110110110110";
        return config;
    },
    //方法返回一个带有拒绝原因的 Promise 对象。
    error => Promise.reject(error)
);
/**************移除拦截器****************/
    // 动态移除
    // const me = axios.interceptors.request.use(function () {/*...*/});
    // axios.interceptors.request.eject(me);
/***************************************/
 
//响应拦截器(对请求结束后进行一些操作,,例如:统一收集报错)
request.interceptors.response.use(
    //请求成功
    (res)=>{
        let code = res.data.code  // 获取后端返回的状态码
        if(code===200){           // 成功
            return res.data  // 返回里面的数据,在使用这个axios时,获取到的东西就是这里返回的东西
        }else{
            return res
        }
    },
    //请求失败
    error => {
        //可根据不同的状态去区分不同的错误,达到不同效果
        if(error.response.status){
            error.response.status === 404 ? alert("请求不存在!!") : alert("其他");
        }
        return Promise.reject(error);
    }
);
 
 
// //封装对应的get请求
// const get = (url, params) => {
//     return new Promise((resolve, reject) => {
//         axios.get(url, {params})
//         .then(res => resolve(res))
//         .catch(err => reject(err));
//     });
// }
// //封装对应的post请求
// const post = (url, param) => {
//     return new Promise((resolve, reject) => {
//         axios.post(url, param)
//         .then(res => resolve(res))
//         .catch(err => reject(err));
//     });
// }
 
export default request