在axios拦截器中实现重定向可以通过以下步骤完成:
import axios from 'axios';
import router from '@/router'; // 导入Vue Router实例
const instance = axios.create({
baseURL: 'https://api.example.com', // 设置请求的基础URL
timeout: 5000, // 设置请求超时时间
});
// 请求拦截器
instance.interceptors.request.use(
(config) => {
// 在发送请求之前做些什么
// 可以在这里添加请求头、设置token等
return config;
},
(error) => {
// 对请求错误做些什么
return Promise.reject(error);
}
);
// 响应拦截器
instance.interceptors.response.use(
(response) => {
// 对响应数据做些什么
return response;
},
(error) => {
// 对响应错误做些什么
if (error.response.status === 401) {
// 如果返回状态码为401,表示未授权,进行重定向到登录页
router.push('/login');
}
return Promise.reject(error);
}
);
instance.get('/api/user')
.then((response) => {
// 处理响应数据
})
.catch((error) => {
// 处理错误
});
在上述代码中,我们创建了一个axios实例,并通过interceptors
属性设置了请求和响应的拦截器。在请求拦截器中,我们可以对请求进行一些处理,例如添加请求头、设置token等。在响应拦截器中,我们可以对响应进行一些处理,例如判断返回状态码是否为401,如果是则进行重定向到登录页。
需要注意的是,上述代码中的router
是Vue Router的实例,用于进行路由跳转。你需要根据自己的项目配置进行相应的修改。
推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云负载均衡(CLB)。
领取专属 10元无门槛券
手把手带您无忧上云