import config from "@/config"; export default function request ( { url = '', method = 'GET', data = {}, showLoading = false, header = {} } ) { // console.log('我是request的参数', url, method, data, showLoading, header); if (showLoading) uni.showLoading({title: '加载中'}) const token = uni.getStorageSync('token') if (token) { header['X-Access-Token'] = token } return new Promise((resolve, reject) => { uni.request({ url: config.baseURL + url, method, data, header: { 'Content-Type': 'application/x-www-form-urlencoded', ...header }, success: (res) => { console.log(`Success ${method} ${url}`, res); // 处理HTTP状态码错误 if (res.statusCode !== 200){ const error = { code: res.statusCode, message: '网络请求错误' } switch (res.statusCode) { case 401: case 403: uni.removeStorageSync('token') uni.reLaunch({ url: '/subPages/login/login' }) error.message = '登录已过期,请重新登录' break; case 404: error.message = '资源不存在' break; case 500: error.message = '服务器错误' } uni.showToast({ title: error.message, icon: 'none' }) reject(error) return } if (res.data.code === 200 && res.data.result !== null) { resolve(res.data) // 成功返回数据 } else { const errorMsg = res.data.message || '请求失败' uni.showToast({ title: errorMsg, icon: 'none' }) reject({ code: res.data.code, message: errorMsg, data: res.data }) } }, fail: (err) => { console.log(`Fail ${method} ${url}`, err); const errorMsg = err.errMsg || '请求失败' uni.showToast({ title: errorMsg, icon: 'none' }) reject({ code: -1, message: errorMsg, data: err }) }, complete: () => { if (showLoading) { uni.hideLoading() } } }) }) }