axios拦截器 返回200一定会进入then方法吗?

我在拦截器中判断是否返回403状态,如果是就跳转到登录页面instance.interceptors.response.use(function(response){if(response.data.status==200){
returnresponse.data;
}elseif(response.data.status==403){//用户身份过期
Message.error(response.data.errorMessage);
router.push({path:'/login'});//跳转到登录页面
window.localStorage.removeItem("user");//清空用户信息
}else{
Message.error(response.data.errorMessage);
}},error=>{
if(error.response){
switch(error.response.status){
case400:Message.error(response.error.message);break;
}
}
returnPromise.reject(error.response.data)
});这边的确能跳转到登录页面,但是还是进入到了then里面,如何不进入then里面this.$axios.get('getInfo')
.then((response)=>{
这边依旧进入,如何让他不进入这边
})
万千封印
浏览 2535回答 4
4回答

youe

return Promise.reject(false);

POPMUISE

我们项目封装的拦截器可以看一下200会进第一个函数吧但是可以根据code值来判断后端返回的状态非正常状态返回一个Promise.reject(res)就可以再请求时catch捕获或者统一处理/添加响应拦截器Axios.interceptors.response.use(response=>{constres=response.dataif(res.code!=='1'){Message({showClose:true,message:res.message,type:'error'})returnPromise.reject(res)}else{returnres}},error=>{Message({message:error.message,type:'error',duration:5000})//返回错误信息returnPromise.reject(error)})

杨__羊羊

应该没有这样的方法,除非你魔改一下源码,其实可以在then那里加一个判断.then((response)=>{if(response){}})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript