1. Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。前端最流行的 ajax 请求库, 2. react/vue 官方都推荐使用 axios 发 ajax 请求
1. 基于 promise 的异步 ajax 请求库,支持promise所有的API 2. 浏览器端/node 端都可以使用,浏览器中创建XMLHttpRequests 3. 支持请求/响应拦截器 4. 支持请求取消 5. 可以转换请求数据和响应数据,并对响应回来的内容自动转换成 JSON类型的数据 6. 批量发送多个请求 7. 安全性更高,客户端支持防御 XSRF,就是让你的每个请求都带一个从cookie中拿到的key, 根据浏览器同源策略,假冒的网站是拿不到你cookie中得key的,这样,后台就可以轻松辨别出这个请求是否是用户在假冒网站上的误导输入,从而采取正确的策略。
axios在浏览器端使用XMLHttpRequest
对象发送ajax请求;在node环境使用http
对象发送ajax请求。
var defaults.adapter = getDefaultAdapter();
function getDefaultAdapter () {
var adapter;
if (typeof XMLHttpRequest !== 'undefined') {
// 浏览器环境
adapter = require('./adapter/xhr');
} else if (typeof process !== 'undefined') {
// node环境
adapter = require('./adapter/http');
}
return adapter;
}
上面几行代码,可以看出:XMLHttpRequest 是一个 API,它为客户端提供了在客户端和服务器之间传输数据的功能;process 对象是一个 global (全局变量),提供有关信息,控制当前 Node.js 进程。原来作者是通过判断XMLHttpRequest和process这两个全局变量来判断程序的运行环境的,从而在不同的环境提供不同的http请求模块,实现客户端和服务端程序的兼容。
ajax的缺点