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