| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | // 这里的vm,就是我们在vue文件里面的this,所以我们能在这里获取vuex的变量,比如存放在里面的token// 同时,我们也可以在此使用getApp().globalData,如果你把token放在getApp().globalData的话,也是可以使用的import md5Libs from "@/uview-ui/libs/function/md5";const install = (Vue, vm) => {	Vue.prototype.$u.http.setConfig({		baseUrl: vm.$site.root+'api', // 请求的本域名		// 设置为json,返回后会对数据进行一次JSON.parse()		dataType: 'json',		showLoading: true, // 是否显示请求中的loading		loadingText: '努力加载中...', // 请求loading中的文字提示		loadingTime: 300, // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms		originalData: true, // 是否在拦截器中返回服务端的原始数据		loadingMask: true, // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透		// 配置请求头信息		header: {			"Content-type":"application/x-www-form-urlencoded",			"X-Requested-With":"XMLHttpRequest",		},	});	// 请求拦截,配置Token等参数	Vue.prototype.$u.http.interceptor.request = (config) => {		config.header["Authorization"] = vm.vuex_user_token		return config;	}	// 响应拦截,判断状态码是否通过	Vue.prototype.$u.http.interceptor.response = (res) => {		// 如果把originalData设置为了true,这里得到将会是服务器返回的所有的原始数据		// 判断可能变成了res.statueCode,或者res.data.code之类的,请打印查看结果		if(res.statusCode === 200){			res = res.data;			if(res.code === 200) {				// 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么				return typeof res.data === 'string' ? JSON.parse(res.data) : res.data;			}if(res.code === 401) {				Vue.prototype.$u.vuex(Vue.prototype.$const.USER_TOKEN,null)				Vue.prototype.$u.vuex(Vue.prototype.$const.USER_DATA,null)				Vue.prototype.$util.login();				return false;			}else {				uni.showModal({					title: '提示',					content: res.message,					showCancel: false,				});				return false;			}		}else{			uni.showModal({				title: '提示',				content: '服务器错误!'+res.data.message,				showCancel: false,			});			return false;		}	}}export default {	install}
 |