axios请求头封装
时间: 2023-10-09 14:09:50 浏览: 95
axios请求的封装
在使用axios发送请求时,可以通过封装请求头来统一设置一些常用的请求头信息。下面是一个简单的示例:
```javascript
import axios from 'axios';
// 创建一个axios实例
const instance = axios.create({
baseURL: 'http://api.example.com',
timeout: 5000, // 请求超时时间
});
// 请求拦截器
instance.interceptors.request.use(
(config) => {
// 在发送请求之前可以对请求头进行一些处理
config.headers['Content-Type'] = 'application/json'; // 设置Content-Type
config.headers['Authorization'] = 'Bearer token'; // 设置Authorization头部
return config;
},
(error) => {
return Promise.reject(error);
}
);
export default instance;
```
上述代码中,我们首先创建了一个axios实例,并设置了通用的配置项,如baseURL和timeout。然后通过`interceptors.request.use`方法添加了一个请求拦截器,在发送请求之前对请求头进行处理。在这个示例中,我们设置了`Content-Type`为`application/json`,并添加了一个`Authorization`头部。
这样,在发送请求时,你只需要导入封装好的axios实例,直接调用相应的HTTP方法即可,请求头会自动带上我们定义的通用配置。
```javascript
import axiosInstance from './axiosInstance';
// 发送GET请求
axiosInstance.get('/api/data').then((response) => {
console.log(response.data);
}).catch((error) => {
console.error(error);
});
// 发送POST请求
axiosInstance.post('/api/data', { key: 'value' }).then((response) => {
console.log(response.data);
}).catch((error) => {
console.error(error);
});
```
这样可以使代码更加简洁,也方便统一管理和修改请求头的配置。同时,你也可以根据需要在拦截器中添加其他的处理逻辑。
阅读全文