在项目中新建common文件夹,在文件夹中新建http.interceptor.js:
const install = (Vue, vm) => {undefined Vue.prototype.u.http.interceptor.request = (config) => {undefined const token = uni.getStorageSync('userInfo'); config.header.MiniId = 1 if (token) {undefined config.header.token = token.token; } } // 响应拦截,判断状态码是否通过 Vue.prototype.$u.http.interceptor.response = (res) => {undefined if (res.data.code == 4000) {undefined uni.login({undefined success: (res) => {undefined console.log(res.code) uni.setStorageSync('code',res.code) } })
uni.navigateTo({undefined
url: '/pages/Me/MeCom/NotLogged/NotLogged'
})
// });
return res.data;
}
if(res.statusCode == 200) {undefined
// 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么
return res.data;
} else{undefined
return false;
}
}
} export default {undefined install }
在main.js中:
import httpInterceptor from '@/common/http.interceptor.js'; Vue.use(httpInterceptor, app);
在组件中使用:
getItemList(page) {undefined this.$u.post('/single/order/order_list', {undefined type: this.current, page:page?page:1 }).then(res => {undefined console.log(res.data) this.itemList =page?this.itemList.concat(res.data.data):res.data.data this.total = res.data.total this.last_page = res.data.last_page this.per_page = res.data.per_page this.current_page = res.data.current_page })
}