vue框架axios请求拦截器添加token和lang
时间: 2024-09-14 08:03:46 浏览: 43
在Vue框架中,利用axios作为HTTP请求库时,可以设置全局的请求拦截器来统一处理每个请求前的操作,比如添加请求头(如token和语言信息)。以下是步骤:
1. 首先,在项目中安装axios:
```
npm install axios
```
2. 在Vue的main.js或axios配置文件中,引入axios并创建实例:
```javascript
import axios from 'axios';
const service = axios.create({
baseURL: process.env.BASE_API, // API的base_url
headers: {
'Content-Type': 'application/json', // 默认请求头
},
});
```
3. 接下来,创建一个全局的request interceptor,添加token和lang:
```javascript
service.interceptors.request.use(
config => {
if (localStorage.getItem('token')) { // 检查是否有token
config.headers.Authorization = `Bearer ${localStorage.getItem('token')}`; // 添加Authorization头
}
if (localStorage.getItem('lang')) { // 如果有lang设置
config.headers['Accept-Language'] = localStorage.getItem('lang');
}
return config;
},
error => Promise.reject(error)
);
```
4. 这里我们假设`localStorage.getItem('token')`和`localStorage.getItem('lang')`能获取到实际的token和lang值,如果存储的是JSON格式,需要做相应的解析。
5. 使用这个服务发送API请求:
```javascript
export function fetchData(url) {
return service.get(url);
}
```
阅读全文