1.使用uniapp开发小程序时,有时候后端接口返回的状态码是401,也就是未登录状态,这时候我们需要拦截401并让它跳到登录页,但是在封装的请求中直接判断状态码为401时弹出uni.showModal点击确定跳转时微信开发工具显示正常,但是真机上就重复弹出了很多个(假如你当前页面请求了5个接口,那就会有5个窗口,你需要点击5下才能关闭),这时我们的想法是只让他显示一次,解决方法如下:
uni.addInterceptor('request', {
success(args) {
let isLogin = uni.getStorageSync('isLogin')
if (args.statusCode == 401 && isLogin == 'yes') {
uni.showModal({
title: "温馨提示",
content: '登录已过期,重新登录',
cancelText: "取消",
confirmText: "确定",
confirmColor: "#815EC9",
showCancel: false,
success: (res) => {
if (res.confirm) {
uni.redirectTo({
url: '/pages/login/login'
})
} else if (res.cancel) {}
}
});
uni.setStorageSync('isLogin', 'no')
}
},
fail(err) {
console.log('失败')
}
})
亲测有效,也是目前自己写的最好的办法,帮到你了就关注点赞哦,分享每一点每一滴,哦里给!!!!