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===4