// 同时发送异步请求的次数,防止一次点击有多次请求
|
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
|