vue请求拦截器
时间: 2025-06-05 22:50:20 浏览: 17
### Vue Axios 请求拦截器实现与配置
在Vue项目中,`axios` 的请求拦截器可以通过 `axios.interceptors.request.use()` 方法来定义。这允许开发者在每次发送 HTTP 请求之前执行特定逻辑。
对于全局配置而言,在项目的入口文件 `main.js` 中引入并初始化 `axios` 后,可以直接挂载到 Vue 原型链上以便于在整个应用范围内访问[^1]:
```javascript
// main.js 配置
import axios from 'axios';
// 设置基础 URL 和其他默认选项
axios.defaults.baseURL = '请求根路径';
Vue.prototype.$http = axios;
```
为了增强安全性或者处理跨域等问题,可以在创建实例之后立即添加请求拦截器[^2]:
```javascript
// 添加请求拦截器
axios.interceptors.request.use(
config => {
// 可在此处加入 token 或者其他公共参数
const token = localStorage.getItem('user-token');
if (token) {
config.headers['Authorization'] = `Bearer ${token}`;
}
return config;
},
error => Promise.reject(error)
);
```
上述代码片段展示了如何向每个发出的请求头部自动附加认证令牌(如果存在)。这种做法特别适用于需要验证用户身份的应用程序。
另外值得注意的是,除了简单的修改请求头外,还可以利用此机制来进行更复杂的预处理工作,例如检查 Token 是否有效、加载显示进度条等实用功能[^3]。
最后,考虑到现代前端框架的发展趋势,如使用 Vue 3 结合 Pinia 进行状态管理的情况下,则可能涉及到更加复杂的状态同步需求。此时建议将 API 客户端封装成独立模块,并通过插件形式集成至应用程序中[^4]。
#### 示例:完整的请求拦截器设置
```javascript
const instance = axios.create({
baseURL: process.env.VUE_APP_API_URL,
});
instance.interceptors.request.use((config) => {
const token = sessionStorage.getItem('authToken');
if (token && !config.headers.Authorization) {
config.headers.Authorization = `Bearer ${token}`;
}
return config;
}, (error) => {
return Promise.reject(error);
});
```
阅读全文
相关推荐

















