Axios
axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端。简单的理解就是ajax的封装
它本身具有以下特征:
a.从浏览器中创建 XMLHttpRequest
b.从 node.js 发出 http 请求
c.支持 Promise API
e.拦截请求和响应
f.转换请求和响应数据
g.取消请求
h.自动转换JSON数据
i.客户端支持防止 CSRF/XSRF
promise是什么:是一个对象用来传递异步操作的信息,它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个事件提供统一的api,可供进一步的处理。
promise的作用:Promise的出现主要是解决地狱回调的问题,比如你需要结果需要请求很多个接口,这些接口的参数需要另外那个的接口返回的数据作为依赖,这样就需要我们一层嵌套一层,但是有了Promise 我们就无需嵌套。
promise的本质是什么:分离异步数据获取和业务
基本使用方法:
axios执行GET请求
![](http://upload-images.jianshu.io/upload_images/13893707-b63bec30d1470820.png)
执行POST请求
![](http://upload-images.jianshu.io/upload_images/13893707-276e74a9ebb657c6.png)
执行多个并发请求
![](http://upload-images.jianshu.io/upload_images/13893707-bac6c736f7d28140.png)
get和post都是基于promise的所以写法上很相似,是用then和catch,使用这种方法来进行发送请求。
还有一个axios重要的知识点就是拦截器
拦截器
在请求或响应被 then 或 catch 处理前拦截它们(拦截器可以做什么:在请求或者响应时拦截下来进行处理)
拦截器分为请求拦截器和响应拦截器
请求拦截器(interceptors.requst)是指可以拦截每次或指定HTTP请求,并可修改配置项。
响应拦截器(interceptors.response)可以在每次HTTP请求后拦截住每次或指定HTTP请求,并可修改返回结果项。
![](http://upload-images.jianshu.io/upload_images/13893707-204078365742ccad.png)
拦截器的工作流程:
![](http://upload-images.jianshu.io/upload_images/13893707-46250b82c3161def.png)
移除拦截器
![](http://upload-images.jianshu.io/upload_images/13893707-57ce8c78ea9cad04.png)
自定义 axios 实例添加拦截器
![](http://upload-images.jianshu.io/upload_images/13893707-c039b42992d86d3d.png)
取消
使用 cancel token 取消请求
可以使用 CancelToken.source 工厂方法创建 cancel token
参考资料:axios中文文档
CSDN大神连接:https://blog.csdn.net/gao_xu_520/article/details/79726298
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步