为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

万千封印 2019-05-20 17:50:03
我在拦截器中判断是否返回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)=>{这边依旧进入,如何让他不进入这边})
查看完整描述

4 回答

?
youe

TA贡献2条经验 获得超1个赞

return Promise.reject(false);


查看完整回答
1 反对 回复 2020-04-16
?
POPMUISE

TA贡献1765条经验 获得超5个赞

我们项目封装的拦截器可以看一下200会进第一个函数吧但是可以根据code值来判断后端返回的状态非正常状态返回一个Promise.reject(res)就可以再请求时catch捕获或者统一处理
/添加响应拦截器
Axios.interceptors.response.use(
response=>{
constres=response.data
if(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)
}
)
                            
查看完整回答
反对 回复 2019-05-20
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

应该没有这样的方法,除非你魔改一下源码,其实可以在then那里加一个判断
.then((response)=>{
if(response){
}
})
                            
查看完整回答
反对 回复 2019-05-20
  • 4 回答
  • 0 关注
  • 2450 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信