vue axios获取状态码(success,error)
项目中遇到个小需求,当页面半个小时内无任何操作的时候,token自动失效,毫无疑问是要跳到登录页的,token失效后后端给我的状态码是412,那么好,这个412我就是获取不到,给中console.log就是打印不出我想要的status,最终还是找到了我想要的。 获取状态有两种写法:这里的api为配置的api文件,在main.js中引入,我的配置方法链接在这axios的API配置文..
·
项目中遇到个小需求,当页面半个小时内无任何操作的时候,token自动失效,毫无疑问是要跳到登录页的,token失效后后端给我的状态码是412,那么好,这个412我就是获取不到,给中console.log就是打印不出我想要的status,最终还是找到了我想要的。
获取状态有两种写法:这里的api为配置的api文件,在main.js中引入,我的配置方法链接在这axios的API配置文件
import * as api from './Api'
一、handleSuccess,获取成功的状态码,response里全是你想要的信息,这里使用了elementUI
api.allHandle.handleSuccess = function (response) {
let body = response.data;
switch (body.event){
case 'SUCCESS':
if(callback){
callback(body.data);
}
break;
case 'ERROR':
Vue.prototype.$notify.error({
title: '操作提示',
message: body.describe
});
if(error){
error(body);
}
break;
case 'EXCEPTION':
Vue.prototype.$notify.error({
title: '操作提示',
message: body.describe
});
if(error){
error(body);
}
break;
case 'UNAUTHORIZED':
Vue.prototype.$notify.error({
title: '操作提示',
message: body.describe
});
if(error){
error(body);
}
router.push({name:'userlogin'});
break;
default:
Vue.prototype.$notify.error({
title: '操作提示',
message: body.describe
});
}
};
二、handleError,在这里打印error是打印不出来的,下面的图并不是我想要的东西
几经周折,打印error.response,注意这个response很重要,我忽略了他,所以打印不出来
没错,这才是我想要的,获取到状态码判断一下就好了。
api.allHandle.handleCatch = function (error) {
console.log(error.response.status);
if(error.response.status===412){
router.push({name:'userlogin'});
}
};
更多推荐
已为社区贡献14条内容
所有评论(0)