liuying
2025-08-08 a92072dcf0336eaef8f4430dad90ceb5390b28f1
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
// 同时发送异步请求的次数,防止一次点击有多次请求
let ajaxTime = 0;
 export const baseUrl = 'http://localhost:8085'
 //export const baseUrl = 'http://10.103.9.200:8085'
 // 本地地址
// 公共的request方法
export function request(option) {
    //请求头.
    const header = {};
 
    // 返回方式
    header['Content-Type'] = option.contentType || 'application/json';
    // 判断是否是登录请求,不是在header中加上token
    if (option.url != '/login') {
        header['token'] = uni.getStorageSync('token') ? 'Bearer ' + uni
            .getStorageSync('token') : '';
        header.Authorization = uni.getStorageSync('token') ? 'Bearer ' + uni
            .getStorageSync('token') : ''
    }
    ajaxTime++;
    // 显示加载中效果
    uni.showLoading({
        title: '加载中...',
        mask: true
    });
 
    return new Promise((resolve, reject) => {
        uni.request({
            url: baseUrl + option.url,
            method: option.method || 'POST',
            data: option.data || {},
            header,
            success: (res) => {
                if (res.statusCode == 200) {
                    // 请求状态正常,返回数据
                    resolve(res.data)
                } else if (res.data.code == 401) { //token失效,清除token关闭当前页面,跳转到登录
                    uni.showModal({
                        title: '提示',
                        content: 'token失效,请重新登陆',
                        showCancel: false
                    })
                    // 清楚token
                    uni.removeStorageSync('token')
                    // 跳转到登录
                    uni.redirectTo({
                        url: '/pages/login/login.vue'
                    })
                } else {
                    // 异常,返回异常code和message
                    reject(`${res.data.code}:${res.data.Message}`)
                }
            },
            fail: (err) => {
                // 请求失败
                reject(err);
            },
            complete: () => {
                // 请求完成后判断状态
                ajaxTime--;
                // 只有值等于0,才清除转圈效果
                if (ajaxTime == 0) {
                    uni.hideLoading()
                }
            }
        })
    }).catch(e => {})
}
 
// export default request