写一个axios封装并且解释一下
时间: 2023-08-07 19:09:51 浏览: 41
Axios是一个基于Promise的HTTP客户端库,可以用于浏览器和Node.js平台。它提供了简单易用的API,可以在浏览器中发送异步请求,支持Promise API,可拦截请求和响应,转换请求和响应数据等功能。
下面是一个简单的Axios封装示例:
```javascript
import axios from 'axios';
const api = axios.create({
baseURL: 'https://api.example.com', // 设置请求地址的前缀
timeout: 5000, // 请求超时时间
headers: { // 设置请求头信息
'Content-Type': 'application/json'
}
});
api.interceptors.request.use((config) => {
// 在请求发送之前对请求进行处理
return config;
}, (error) => {
// 请求错误时的处理
return Promise.reject(error);
});
api.interceptors.response.use((response) => {
// 对响应数据进行处理
return response.data;
}, (error) => {
// 响应错误时的处理
return Promise.reject(error);
});
export default api;
```
这个封装定义了一个名为“api”的Axios实例,其中设置了请求地址的前缀、请求超时时间和请求头信息。它还定义了请求和响应拦截器,可以在发送请求和接收响应时进行处理。
在其他文件中,可以通过以下方式使用这个封装:
```javascript
import api from './api';
api.get('/users').then((response) => {
console.log(response);
}).catch((error) => {
console.log(error);
});
```
这个示例使用了封装中定义的“api”实例发送了一个GET请求,如果请求成功,将打印响应数据;如果请求失败,将打印错误信息。