import { ACCESSTOKEN, config, DEBUG } from '@/common/config.js'; function appType() { let appType = 0 // #ifdef MP-WEIXIN appType = 3 // 微信小程序 // #endif // #ifdef MP-ALIPAY appType = 1 // 支付宝小程序 // #endif // #ifdef H5 var ua = window.navigator.userAgent.toLowerCase(); if (ua.match(/MicroMessenger/i) == 'micromessenger') { appType = 4; //是微信公众号 } if (ua.match(/AlipayClient/i) == 'alipayclient') { appType = 2; //支付宝生活号 } // #endif return appType } module.exports = (vm) => { uni.$u.http.setConfig((x) => { return x = { // baseURL: config.baseURL, dataType: 'json', timeout: 60000, showLoading: false, //是否显示全局loading timer: null, loadingTime: 800, //多少秒无返回再显示loading header: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', 'Access-Control-Allow-Origin': '*' } } }) // 请求拦截 uni.$u.http.interceptors.request.use((x) => { DEBUG && console.log('请求参数', x); // 引用token const TOKEN = uni.getStorageSync(ACCESSTOKEN); if (TOKEN) { x.header[ACCESSTOKEN] = 'Bearer ' + TOKEN; } x.header['CLIENT-TYPE'] = appType() return x; }, x => { return Promise.reject(x) }) // 响应拦截 uni.$u.http.interceptors.response.use((x) => { DEBUG && console.log('返回结果', x); let res = x.data if (res.code == 10000) { return res.data; } else if (res.code == 401) { const cid = uni.getStorageSync('CID') uni.removeStorageSync(ACCESSTOKEN) vm.$u.toast("授权过期,请重新登录"); setTimeout(() => { uni.reLaunch({ url: "/pay/login?cid=" + cid }) }, 800); return Promise.reject(res) } else if (res.code == 10002) { return Promise.reject(res) } else { // vm.$u.toast(res.description || res.msg ||res.info ||"请求异常!"); //错误提示信息 return Promise.reject(res) } }, (response) => { vm.$u.toast("请求异常!"); //错误提示信息 return Promise.reject(response) }) }