uniapp网络请求的封装
在项目中新建common文件夹,在文件夹中新建http.interceptor.js:const install = (Vue, vm) => {Vue.prototype.$u.http.setConfig({baseUrl: 'https://admin.yin10000.com',header: {'MiniId': 1,'token': '',},...
在项目中新建common文件夹,在文件夹中新建http.interceptor.js:
const install = (Vue, vm) => {
Vue.prototype.$u.http.setConfig({
baseUrl: 'https://admin.yin10000.com',
header: {
'MiniId': 1,
'token': '',
},
originalData: true,
});
// 请求拦截,配置Token等参数
Vue.prototype.$u.http.interceptor.request = (config) => {
const token = uni.getStorageSync('userInfo');
config.header.MiniId = 1
if (token) {
config.header.token = token.token;
}
}
// 响应拦截,判断状态码是否通过
Vue.prototype.$u.http.interceptor.response = (res) => {
if (res.data.code == 4000) {
uni.login({
success: (res) => {
console.log(res.code)
uni.setStorageSync('code',res.code)
}
})
uni.navigateTo({
url: '/pages/Me/MeCom/NotLogged/NotLogged'
})
// });
return res.data;
}
if(res.statusCode == 200) {
// 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么
return res.data;
} else{
return false;
}
}
}
export default {
install
}
在main.js中:
import httpInterceptor from '@/common/http.interceptor.js';
Vue.use(httpInterceptor, app);
在组件中使用:
getItemList(page) {
this.$u.post('/single/order/order_list', {
type: this.current,
page:page?page:1
}).then(res => {
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
})
}
更多推荐
所有评论(0)