# 总结

当你看到这里的时候,那么相信你已经完成了对 axios 源码的阅读了。通过前面的章节学习,相信大家或多或少都有一点自己的收获。对于 axios 的一些特性功能,比如拦截请求和响应转换请求数据和响应数据取消请求等,都知道了是怎么实现的了。

在我阅读的过程中,我最大的收获就是请求/响应拦截器取消请求的实现原理。让我对 promise 的链式调用有了更深层次的了解。同时还收获了一些比较实用的知识,比如使用a标签对地址进行解析,xsrf攻击原理,过程和防御手段等等。

下面,我们总结一下 axios 发送一个请求的执行流程:

1、axios.get发送请求

2、将用户传入的请求配置项和默认的请求配置项进行合并

3、将请求拦截器请求处理函数响应拦截器,形成一个数组,构建出一个 promise 调用链,执行顺序为请求拦截器->请求处理函数->响应拦截器

4、请求拦截器执行,写在后面的请求拦截器先执行。在请求拦截器中,可以对请求配置项进行修改

5、请求处理函数执行,请求前先对请求数据,请求头等进行处理,然后使用适配器获取不同的请求处理函数,发送请求,请求发送完毕将响应数据进行处理,然后将响应数据返回

6、响应拦截器执行,写在前面的响应拦截器先执行。在响应拦截器中,可以对响应数据进行修改

7、请求执行完毕,用户将得到响应数据

最后,如果这份电子文档对你有帮助,希望你可以给我点一个 star,以给我更多的创作动力