前端axios拿不到401的解决办法
工具:elementplus。
·
axios版本:1.3.6,框架:vue3,工具:elementplus
需求:
在vue3 main.js 中统一设置axios响应拦截器,当token过期(后端响应码status=401)
-
提示用户token过期
-
删除localStorage的token
-
跳转回登录页面
问题:
拦截器 axios.interceptors.response.use() 的两个参数,response=>{} 和 error=>{},都无法访问到401状态码。
原因:axios过滤了401错误。
解决:修改axios源码。
node_modules/axios/lib/core/settle.js
if ( !response.status || !validateStatus || validateStatus(response.status) )
if ( !response.status || !validateStatus || validateStatus(response.status) || response.status===401 )
axios.interceptors.response.use (
response => {
if ( response.data.status===401 ) {
ElMassage.error ( '身份认证过期' )
localStorage.removeItem ( 'token' )
router.push ( '/login' )
}
return response
}
---------------------
作者:迦罗远洲
来源:CSDN
原文:https://blog.csdn.net/2203_75725182/article/details/130516884
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件
更多推荐
已为社区贡献14条内容
所有评论(0)