axios⾯试题总结
axios 是什么
1. Axios 是⼀个基于 promise 的 HTTP 库,可以⽤在浏览器和 node.js 中。前端最流⾏的 ajax 请求库,
2. react/vue 官⽅都推荐使⽤ axios 发 ajax 请求
axios 特点
1. 基于 promise 的异步 ajax 请求库,⽀持promise所有的API
2. 浏览器端/node 端都可以使⽤,浏览器中创建XMLHttpRequests
3. ⽀持请求/响应
4. ⽀持请求取消
5. 可以转换请求数据和响应数据,并对响应回来的内容⾃动转换成 JSON类型的数据
6. 批量发送多个请求
7. 安全性更⾼,客户端⽀持防御 XSRF,就是让你的每个请求都带⼀个从cookie中拿到的key, 根据浏览器同源策略,假冒的⽹站是拿不到你cookie中得key的,这样,后台就可以轻松辨别出这个请求是否是⽤户在假冒⽹站上的误导输⼊,从⽽采取正确的策略。
axios 常⽤语法
axios(config): 通⽤/最本质的发任意类型请求的⽅式
axios(url[, config]): 可以只指定 url 发 get 请求
<(url[, config]): 发 get 请求
axios.delete(url[, config]): 发 delete 请求
axios.post(url[, data, config]): 发 post 请求
axios.put(url[, data, config]): 发 put 请求
: 请求的默认全局配置
quest.use(): 添加请求
sponse.use(): 添加响应
axios.Cancel(): ⽤于创建取消请求的错误对象
axios.CancelToken(): ⽤于创建取消请求的 token 对象
axios.isCancel(): 是否是⼀个取消请求的错误
axios.all(promises): ⽤于批量执⾏多个异步请求
axios.spread(): ⽤来指定接收所有成功数据的回调函数的⽅法
axios为什么既能在浏览器环境运⾏⼜能在服务器(node)环境运⾏?
axios在浏览器端使⽤XMLHttpRequest对象发送ajax请求;在node环境使⽤http对象发送ajax请求。
var defaults.adapter = getDefaultAdapter();
function getDefaultAdapter () {
var adapter;
if (typeof XMLHttpRequest !== 'undefined') {
// 浏览器环境
adapter = require('./adapter/xhr');
jquery框架面试题} else if (typeof process !== 'undefined') {
// node环境
adapter = require('./adapter/http');
}
return adapter;
}
上⾯⼏⾏代码,可以看出:XMLHttpRequest 是⼀个 API,它为客户端提供了在客户端和服务器之间传输数据的功能;process 对象是⼀个 global (全局变量),提供有关信息,控制当前 Node.js 进程。原来作者是通过判断XMLHttpRequest和process这两个全局变量来判断程序的运⾏环境的,从⽽在不同的环境提供不同的http请求模块,实现客户端和服务端程序的兼容。
axios相⽐原⽣ajax的优点
ajax的缺点
本⾝是针对MVC的编程,不符合现在前端MVVM的浪潮
基于原⽣的XHR开发,XHR本⾝的架构不清晰。
JQuery整个项⽬太⼤,单纯使⽤ajax却要引⼊整个JQuery⾮常的不合理(采取个性化打包的⽅案⼜不能享受CDN服务)
不符合关注分离(Separation of Concerns)的原则
配置和调⽤⽅式⾮常混乱,⽽且基于事件的异步模型不友好。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论