问题情况:
axios的响应拦截,拦截401的情况。~
在我的pc浏览器上没问题,
可是换到手机上 只打印到 console.log('获取到app 当前登录用户')
就完了,后面的就都不执行了 简直令人作呕
axios.interceptors.response.use(
response => {
if (response.status === 200) {
return Promise.resolve(response);
} else {
return Promise.reject(response);
}
},
error => {
if (error.response) {
switch (error.response.status) {
case 401:
console.log('进入401')
if (window.localStorage.getItem("_NATIVEUSERINFO")) {
console.log('获取到app 当前登录用户')
let { USERNAME, USERPWD } = JSON.parse(window.localStorage.getItem("_NATIVEUSERINFO"));
console.log('开始登录')
apiLogin({
phone: USERNAME,
password: USERPWD
})
.then(res => {
console.log(res)
if (res.code === 0) {
console.log('登录成功')
const token = "Bearer " + res.data.token;
store.commit("changeLogin", token);
location.reload()
} else {
console.log('登录失败')
if (_mm.isDevice.isIOS) {
window.jsfanhui()
} else if (_mm.isDevice.isAndroid) {
window.hkb.finishNativePage();
}
}
})
.catch(() => {
console.log('请求失败')
if (_mm.isDevice.isIOS) {
window.jsfanhui()
} else if (_mm.isDevice.isAndroid) {
window.hkb.finishNativePage();
}
})
} else {
console.log('获取app 当前登录用户 失败')
if (_mm.isDevice.isIOS) {
window.jsfanhui()
} else if (_mm.isDevice.isAndroid) {
window.hkb.finishNativePage();
}
/**
* wap 端处理
*/
/*
Toast({
message: "登录过期,请重新登录",
forbidClick: true,
duration: 3000
});
setTimeout(() => {
router.replace({
path: '/login',
query: {
redirect: router.currentRoute.fullPath
}
});
}, 3000)
*/
}
break;
// 404请求不存在
case 404:
Toast({
message: '网络请求不存在',
duration: 5000,
forbidClick: true
});
break;
// 422 参数错误捕获
case 422:
Toast({
message: error.response.data.describe,
duration: 5000,
forbidClick: true
})
break;
// 500 服务器错误
case 500:
Toast({
message: '服务器维护中,请稍候再试',
duration: 5000,
forbidClick: true
});
break;
// 其他错误,直接抛出错误提示
default:
Toast({
message: error.response.data.describe,
duration: 5000,
forbidClick: true
});
}
// 返回接口返回的错误信息
return Promise.reject(error.response);
}
// 判断请求异常信息中是否含有超时timeout字符串
if (error.message.includes('timeout')) {
return Promise.reject(error);
}
}
)
如果是
获取到app 当前登录用户
有输出而开始登录
没有:有使用 babel 转译吗?没有的话会不会是你在移动端使用的浏览器不支持.
有的话会不会是你在移动端使用的浏览器不支持 localstoarge. (写个空白页面只执行读写 localstorage 试试)
或者直接
try catch
住看看.