uview1.x 版本 请先看好哈 2.x 还未用,之后会附上uview.x的 链接
const install = (Vue, vm) => {
// 此为自定义配置参数,具体参数见上方说明
Vue.prototype.$u.http.setConfig({
baseUrl: 'http://192.168.30.140/',
loadingText: '努力加载中~',
loadingTime: 800,
// 设置自定义头部content-type
// header: {
// 'content-type': 'xxx'
// }
// ......
});
Vue.prototype.$u.http.interceptor.request = (config) => {
if(config.url!="/orderfood/login/getToken"){
config.header.Token = vm.$store.state.token;
}
return config;
}
Vue.prototype.$u.http.interceptor.response = (response) => {
console.log(response)
if(!response.status){
console.log(response.info)
Vue.prototype.$u.toast('您还未登陆,请立即登录')
setTimeout(() => {
Vue.prototype.$u.route({
type:'reLaunch',
url: 'pages/login/index',
})
}, 2000)
}else{
return response
}
}
}
export default {
install
}
配置基本信息 跟请求拦截 + 响应拦截 页面名称(http.interceptor.js)
api页面
// 如果没有通过拦截器配置域名的话,可以在这里写上完整的URL(加上域名部分)
let unigetToken = '/orderfood/login/getToken';
let unilogout = '/orderfood/user/logout';
let unilist = '/orderfood/food/lists';
let uniorder = '/orderfood/order/lists';
let uniorderdetail = '/orderfood/order/detail';
let uniuserInfo = "/orderfood/my/index";
// 此处第二个参数vm,就是我们在页面使用的this,你可以通过vm获取vuex等操作,更多内容详见uView对拦截器的介绍部分:
// https://uviewui.com/js/http.html#%E4%BD%95%E8%B0%93%E8%AF%B7%E6%B1%82%E6%8B%A6%E6%88%AA%EF%BC%9F
const install = (Vue, vm) => {
// 此处没有使用传入的params参数
let ugetToken = (params = {}) => vm.$u.post(unigetToken, params);
// // 此处使用了传入的params参数,一切自定义即可
let ulogout = (params = {}) => vm.$u.post(unilogout, params);
// 商品接口
let ulist = (params = {}) => vm.$u.get(unilist);
// 订单接口
let uorder = (params = {}) => vm.$u.get(uniorder,params);
let uorderdetail = (params = {}) => vm.$u.get(uniorderdetail,params);
let uuserInfo = (params = {}) => vm.$u.post(uniuserInfo);
// // 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
vm.$u.api = {ugetToken, ulogout,ulist,uorder,uorderdetail,uuserInfo};
}
export default {
install
}
页面名称 http.api.js
//main.js
// 请求拦截器 + 响应拦截器
import httpInterceptor from '@/common/http.interceptor.js'
Vue.use(httpInterceptor, app)
// api接口
import httpApi from '@/common/http.api.js'
Vue.use(httpApi, app)