工具库-axios

1待写

  • axios 是什么
  • 为什么会有axios,axios 解决了什么问题
  • axios 与 ajax
  • axios 与 fetch.js
  • axios 源码

axios 和 ajax 的区别?

ajax:

1.AJAX不是新的编程语言,而是一种使用现有标准的新方法

2.最大优点是在不加载整个页面,可以与服务器交换数据并局部刷新网页内容。

3.不需要任何浏览器插件,但需要用户允许js在浏览器执行

axios:

axios是通过promise实现对ajax技术的一种封装

1.用于浏览器和node.js的基于promise的HTTP的客户端

2.从浏览器制作XMLHttoRequests

3.让HTTP从node.js请求

4.支持promise API

5.拦截请求和相应(Interceptors拦截器)

6.转换请求和响应数据

7.取消请求

8.自动转换为JSON数据

9.客户端支持防止CSRF/XSRF(跨站请求伪造)

安卓4.43以下的手机还是不支持promise的,所以会报错,需要引入

npm install babel-polyfill

npm install babel-runtime

在入口文件上加上即可。

import ‘babel-polyfill’

源码

参考链接:

学习 axios 源码整体架构,打造属于自己的请求库

调试

模拟请求网站:https://httpbin.org/

其他类似请求库

JS HTTP 请求库哪家强?Axios,Request,Superagent,Fetch 还是 Supertest

Fetch API 是一个web API,即浏览器底层提供的底层接口,类似于 XMLHttpRequest (XHR) 底层对象,都是解决数据请求获取资源的问题,只是 Fetch API 扩展了 XHR 并解决了一些问题,但是部分浏览器不支持,需要进行 polyfill。

Superagent

superagent vs axios

参考链接:

https://stackoverflow.com/questions/40029787/axios-vs-superagent

https://stackoverflow.com/questions/51814935/what-is-the-difference-between-axios-and-superagent-libraries

为什么我们最终改用superagent 而不是用axsio

区别: