axios基于什么封装
时间: 2023-07-21 20:01:39 浏览: 55
axios是一个基于Promise的HTTP客户端,用于发送HTTP请求。它是基于浏览器内置的XMLHttpRequest对象进行封装的,并提供了更简单和灵活的API来处理网络请求。它还可以在Node.js环境中使用,并支持拦截器、请求和响应的转换、取消请求等功能,使得处理HTTP请求变得更加方便和高效。
相关问题
axios二次封装了什么
axios是一个基于Promise的HTTP库,用于发送HTTP请求。二次封装axios通常是为了简化使用、增加可扩展性和提供更好的错误处理。
一般的axios二次封装会包括以下几个方面的内容:
1. 封装请求拦截器:可以在请求发送前对请求进行一些处理,比如设置请求头、添加认证信息等。
2. 封装响应拦截器:可以在响应返回后对响应进行一些处理,比如统一处理错误、对数据进行格式化等。
3. 封装请求方法:可以封装各种常用的请求方法,如GET、POST、PUT、DELETE等,简化调用方式。
4. 封装错误处理:可以统一处理请求过程中可能发生的错误,比如网络错误、超时等。
5. 封装取消请求:可以通过封装实现取消请求的功能,避免不必要的请求发送。
6. 封装请求重试:可以通过封装实现请求失败时的重试机制,提高请求的可靠性。
7. 封装请求缓存:可以通过封装实现对请求结果的缓存,避免重复发送相同的请求。
通过二次封装axios,可以让开发者在使用axios时更加方便、高效,并且可以根据项目需求定制特定的功能和处理逻辑。
基于axios封装的请求工具
基于axios封装的请求工具是mini-axios。它是一个完全使用Promise并提供了请求和响应的拦截器的微信小程序请求工具。你可以通过以下步骤来引入mini-axios到你的项目中:
1. 第一步,使用命令`npm i mini-axios`来安装mini-axios。
2. 第二步,在你的代码中引入mini-axios,可以使用`import axios from 'mini-axios'`。
3. 第三步,根据需要按需引入指定的请求方法。你可以使用类似以下代码的方式来调用请求方法:
```javascript
let params = { param1: "xxx", param2: "xxxx" };
getRequest("/api/testuri", params)
.then(ret => {
let data = ret.data;
alert("ret: " + JSON.stringify(ret));
})
.catch(err => {
alert("err: " + JSON.stringify(err));
});
```
在上述代码中,`getRequest`是一个由mini-axios提供的请求方法,可以用来发送GET请求。你可以根据需要使用其他的请求方法,如POST、PUT等。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)