import store from '@/common/store/index.js' module.exports = (vm) => { // 环境判断 uni.$u.http.setConfig((config) => { /* config 为默认全局配置*/ config.header = { 'Content-Type': 'application/x-www-form-urlencoded', 'Access-Control-Allow-Headers': '*' } config.baseURL = vm.$BASE_URL; /* 根域名 */ // config.baseURL = vm.$LAWYER_URL; /* 根域名 */ config.withCredentials = true; return config }) // 请求拦截部分,如配置,每次请求前都会执行 uni.$u.http.interceptors.request.use(async (config) => { console.log(config,'config') // 引用token let token = uni.getStorageSync('token'); if(config.custom&&config.custom.auth&&!token){ uni.$u.toast('请登录后再操作') setTimeout(()=>{ vm.$Router.push('/pages/login/login') },1000) return new Promise(() => { }) } if(config.custom&&config.custom.timeout){ config.timeout = config.custom.timeout } if(config.method === 'GET'){ config.header = { 'Content-Type': 'application/json;charset=UTF-8', } }else{ config.header = { 'Content-Type': 'application/json;charset=UTF-8', } } if(config.url.includes('structured-law')){ // config.baseURL = vm.$LAWYER_URL_FG config.header = { 'Content-Type': 'application/x-www-form-urlencoded', } } let data = config.method==="GET" ? config.params : config.data; if(token) { config.header['x-access-token'] = token } return config; }, config => { // 可使用async await 做异步操作 return Promise.reject(config) }) // 响应拦截,如配置,每次请求结束都会执行本方法 uni.$u.http.interceptors.response.use(async (response) => { const data = response.data; const custom = response.config.custom; if (data.code <= 0) { uni.hideLoading() if (!custom.toast) { uni.$u.toast(data.msg); console.log(custom) } // 如果需要catch返回,则进行reject if (custom?.catch) { return Promise.reject(data) } else { // 否则返回一个pending中的promise,请求不会进入catch中 return new Promise(() => { }) } } return !data ? {} : data; },async (response) => { console.log(response) uni.hideLoading() /* 对响应错误做点什么 (statusCode !== 200)*/ if (response.statusCode == 401) { uni.$u.toast('登录已过期,请重新登录') store.dispatch('userLogout') }else if (response.statusCode == 500) { uni.$u.toast('网络开了点小差,请重试'); } else if (response.statusCode == 404) { return; } else { uni.$u.toast(response.data.msg); } return new Promise(() => { }); }) }