axios二次封装
时间: 2023-06-21 13:06:59 浏览: 112
Axios 是一个基于 Promise 的 HTTP 请求库,它可以用于浏览器和 Node.js 环境中。Axios 既支持简单的 GET 请求,也支持复杂的 RESTful API 请求。为了更方便地使用 Axios,我们可以对其进行二次封装。
以下是一个简单的 Axios 二次封装示例:
```javascript
import axios from 'axios';
// 创建一个 Axios 实例
const instance = axios.create({
baseURL: 'http://api.example.com', // 设置请求的 base URL
timeout: 10000, // 设置请求超时时间
});
// 请求拦截器
instance.interceptors.request.use(
(config) => {
// 在发送请求之前做些什么
// 添加 token 等操作
return config;
},
(error) => {
// 对请求错误做些什么
return Promise.reject(error);
}
);
// 响应拦截器
instance.interceptors.response.use(
(response) => {
// 对响应数据做点什么
const data = response.data;
if (data.code !== 200) {
// 处理错误
alert(data.msg);
return Promise.reject(data);
}
return data.data;
},
(error) => {
// 对响应错误做点什么
alert(error.message);
return Promise.reject(error);
}
);
export default instance;
```
在以上代码中,我们首先通过 `axios.create` 方法创建了一个 Axios 实例,然后对其进行了一些配置,例如设置了请求的 `baseURL` 和超时时间。
接着,我们分别定义了请求拦截器和响应拦截器。请求拦截器可以在发送请求之前,对请求进行一些处理,例如添加 token 等操作。而响应拦截器则可以对响应数据进行一些处理,例如统一处理错误信息。
最后,我们将封装好的 Axios 实例导出,以便在其他模块中使用。
在实际项目中,我们可以根据具体需求对以上代码进行修改和扩展,以满足不同的请求场景。
阅读全文