Vue中如何统一处理Ajax请求的错误响应?
我在用Vue做项目,想通过拦截器统一处理接口返回的错误(比如token过期),但不知道为啥拦截器没生效,求指点!
我用的是axios,已经写了响应拦截,但401错误还是直接抛到组件里了,没走拦截逻辑。
<script>
import axios from 'axios'
const instance = axios.create()
instance.interceptors.response.use(
res => res,
err => {
if (err.response?.status === 401) {
console.log('token失效,跳转登录')
// 这里没执行!
}
return Promise.reject(err)
}
)
export default instance
</script>
首先确认你在Vue组件里是这样发起请求的:
还有个小技巧,建议在拦截器里加个console.log看看是不是真的没走这里:
如果还是不行,检查下是不是有多个axios实例混用了。这种坑我踩过不少次,累得够呛。希望这些建议能帮你解决问题。