axios相关问题

一、axios的特点有哪些

  1. Axios 是一个基于 promise 的 HTTP 库,支持promise所有的API
  2. 可以拦截请求和响应
  3. 可以转换请求数据和响应数据,并对响应回来的内容自动转换成 JSON类型的数据
  4. 安全性更高,客户端支持防御CSRF

二、axios为什么既能在浏览器环境运行又能在服务器(node)环境运行

  1. axios在浏览器端使用XMLHttpRequest对象发送ajax请求
  2. 在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和process这两个全局变量来判断程序的运行环境的,从而在不同的环境提供不同的http请求模块,实现客户端和服务端程序的兼容

三、axios 与 ajax 的区别

相同点:底层都是基于 xhr 实现

区别:axios是通过promise实现对ajax技术的一种封装,就像jQuery实现ajax封装一样。axios是ajax, ajax不止axios

优缺点:
ajax:

  1. 本身是针对MVC的编程,不符合现在前端MVVM的浪潮
  2. JQuery整个项目太大,单纯使用ajax却要引入整个JQuery非常浪费性能

axios:

  1. 仅用作网络请求
  2. 客户端支持防止CSRF

详细参考第一点

猜你喜欢

转载自blog.csdn.net/weixin_44257930/article/details/108928818
今日推荐