axios封装拦截401失效
时间: 2024-12-13 18:14:10 浏览: 4
axios是一个流行的JavaScript库,用于处理HTTP请求。为了增强其功能并统一错误处理,开发者通常会对其进行封装,并添加全局的拦截器,例如处理HTTP状态码为401(未经授权)的情况。当发生401错误时,可以通过以下步骤进行处理:
1. 首先,在axios实例创建时或项目配置文件中,设置一个拦截器函数:
```javascript
import axios from 'axios';
const instance = axios.create({
// 其他配置选项...
});
instance.interceptors.response.use(
response => response,
error => {
if (error.response.status === 401) {
// 当接收到401响应时,可以执行如登录重定向、显示提示等操作
console.error('Received a 401 unauthorized response.', error);
// 你可以选择返回一个新的请求、提示用户或关闭当前会话
// 例如,如果是SPA应用,可以尝试自动重定向到登录页面
window.location.href = '/login';
} else {
// 对于其他非401的错误,这里不做特殊处理,直接抛出
throw error;
}
return Promise.reject(error); // 返回Promise以中断默认链式处理
},
);
// 然后你可以像这样发起请求
instance.get('/api/protected');
```
阅读全文