request.js
3.19 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
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
import service from './service.js'
import config from '../common/config.js'
import auth from '@/common/auth.js'
import { redirectToLogin } from '@/common/auth-nav.js'
const get = function(url, data) {
return request(url, 'GET', data);
}
const getp = function(url, data) {
return request(url, 'GET');
}
const post = function(url, data, headers, timeoutMs) {
return request(url, 'POST', data, headers, timeoutMs);
}
const put = function(url, data) {
return request(url, 'put', data);
}
const postFormData = function(url, data) {
return request(url, 'POST', data, {
'Content-Type': 'application/x-www-form-urlencoded'
});
}
const postPatchJson = function(url, data) {
return request(url, 'POST', data, {
'Content-Type': 'application/json-patch+json'
});
}
const del = function(url, data) {
return request(url, 'DELETE', data);
}
const request = function(url, method, data, headers, timeoutMs, options) {
let header = {}
var opts = options || {}
if (!opts.anonymous) {
const token = auth.getToken()
if (token) {
header['Authorization'] = token
}
}
// 如果URL已经包含完整地址,则不添加BASE_URL
if (url.startsWith('http')) {
// URL已经是完整的,直接使用
} else {
url = config.getApiBaseUrl() + url;
}
// console.error(url)
if (headers) {
header = Object.assign({}, header, headers)
}
const timeout = timeoutMs != null ? timeoutMs : 50000
return new Promise((resolve, reject) => {
uni.request({
url,
data,
method,
header,
timeout,
success: (res) => {
// console.error(url,res.data.code)
if (res.statusCode === 200) {
const biz = res.data || {}
if (!opts.anonymous && (biz.code == 600 || biz.msg == '登录过期,请重新登录')) {
redirectToLogin()
}
if (biz.code < 0 && biz.message) {
uni.showToast({
icon: 'none',
title: biz.data && biz.data.message,
duration: 2000
});
reject(res.data);
} else if (biz.code === 500) {
// uni.showToast({
// icon: 'none',
// title: res.data.msg || '操作失败,请联系管理员',
// duration: 2000
// });
// uni.removeStorageSync('UserToken_KEY');
resolve(biz);
} else {
resolve(biz);
}
} else if (res.statusCode === 403 || res.statusCode === 401) {
service.addToken('');
// uni.reLaunch({
// url: '/pages/login/login'
// });
reject(res.data || { msg: '未授权' });
} else {
const body = res.data && typeof res.data === 'object' ? res.data : {}
reject({
msg: body.msg || body.message || ('请求失败 ' + res.statusCode),
code: body.code,
data: body
});
// uni.showToast({
// icon:'none',
// title: res.data.msg || '系统繁忙!',
// duration: 2000
// });
}
},
fail: (error) => {
uni.hideLoading();
// uni.showToast({
// icon:'none',
// title: '网络错误!',
// duration: 2000
// });
const errMsg = (error && (error.errMsg || error.message)) || '网络错误'
reject({ msg: errMsg, raw: error });
console.log(error);
}
});
});
}
export default {
get,
post,
del,
request,
postFormData,
put,
postPatchJson,
getp
}