api响应拦截器
import { getStorage, removeStorage } from "@/utils/storage.js"let apiUrl = 'https://lsm.liandu.gov.cn:2020';const responeCode = ["AUTH.RESOURCE.E0001", "AUTH.RESOURCE.E0002"];const baseRequest = (url, params, xmodule = '/lsm-service', method = 'POST') => { return new Promise((resolve, reject) => { uni.request({ url: apiUrl + xmodule + url, //测试接口 method, data: params, header: { access_token: getStorage() || '' }, }).then((response) => { let [error, res] = response; let result = res.data if (result.success === false) { if (responeCode.includes(result.errorCode)) { uni.showToast({ title: `登录信息过期,请重新登录!`, icon: 'none', duration: 2000 }); setTimeout(() => { removeStorage() uni.reLaunch({ url: '/pages/login/index' }) }, 1500); } else if (result.errorCode === "validator") { let messageData = ""; if (result.attachments.errors && result.attachments.errors.length) { result.attachments.errors.forEach(s => (messageData = messageData.concat(`${s.message}`))); uni.showToast({ title: messageData, icon: 'none', duration: 2000 }); } } else { uni.showToast({ title: result.exceptionContent || "连接失败,请重试!", icon: 'none', duration: 2000 }); } } resolve(result); }).catch(error => { uni.showToast({ icon: 'none', title: '服务器错误!', duration: 2000 }) let [err, res] = error; reject(err); }); })};export default { baseRequest}
main.js 原型挂载
import api from './api'Vue.prototype.$api = api.baseRequest;
使用
this.$api('',{}).then(res=>{}).catch(err->{})