axios和ajax的区别是什么?

       1、axios是一个基于Promise的HTTP库,而ajax是对原生XHR的封装;

        2、ajax技术实现了局部数据的刷新,而axios实现了对ajax的封装。

axios和ajax的区别及优缺点:

ajax:

1、什么是ajax

  Ajax是对原生XHR的封装,为了达到我们跨越的目的,增添了对JSONP的支持。

  异步的javascript和xml,ajax不是一门新技术,而是多种技术的组合,用于快速的创建动态页面,能够实现无刷新更新数据从而提高用户体验。

2、ajax的原理?

  由客户端请求ajax引擎,再由ajax引擎请求服务器,服务器作出一系列响应之后返回给ajax引擎,由ajax引擎决定将这个结果写入到客户端的什么位置。实现页面无刷新更新数据。

3、核心对象?

  XMLHttpReques

4、ajax优缺点?

  优点 

    1、 无刷新更新数据

    2、异步与服务器通信

    3、前端和后端负载平衡

    4、基于标准被广泛支持

    5、界面与应用分离

  缺点:

    1、ajax不能使用Back和history功能,即对浏览器机制的破坏。

    2、安全问题 ajax暴露了与服务器交互的细节

    3、对收索引擎的支持比较弱

    4、破坏程序的异常处理机制

    5、违背URL和资源定位的初衷

    6、ajax不能很好的支持移动设备

    7、太多客户端代码造成开发上的成本

5、Ajax适用场景
  <1>.表单驱动的交互
  <2>.深层次的树的导航
  <3>.快速的用户与用户间的交流响应
  <4>.类似投票、yes/no等无关痛痒的场景
  <5>.对数据进行过滤和操纵相关数据的场景
  <6>.普通的文本输入提示和自动完成的场景
6、Ajax不适用场景
  <1>.部分简单的表单
  <2>.搜索
  <3>.基本的导航
  <4>.替换大量的文本
  <5>.对呈现的操纵

7、代码

1

2

3

4

5

6

7

8

$.ajax({

  type: 'POST',

  url: url,

  data: data,

  dataType: dataType,

  success: function () {},

  error: function () {}

});

8、ajax请求的五个步骤

  1. 创建XMLHttpRequest异步对象

  2. 设置回调函数

  3. 使用open方法与服务器建立连接

  4. 向服务器发送数据

  5. 在回调函数中针对不同的响应状态进行处理

axios:

1、axios是什么

Axios 是一个基于 Promise 的 HTTP 库,可以用在浏览器和 node.js 中。

2、axios有那些特性?

  1、在浏览器中创建 XMLHttpRequests

  2、在node.js则创建http请求

  3、支持Promise API

  4、支持拦截请求和响应

  5、转换请求和响应数据

  6、取消请求

  7、自动转换成JSON数据格式

  8、客户端支持防御XSRF

3、执行get请求,有两种方式

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

// 第一种方式  将参数直接写在url中axios.get('/getMainInfo?id=123')

.then((res) => {

  console.log(res)

})

.catch((err) => {

  console.log(err)

})// 第二种方式  将参数直接写在params中axios.get('/getMainInfo', {  params: {

    id: 123

  }

})

.then((res) => {

  console.log(res)

})

.catch((err) => {

  console.log(err)

})

4、执行post请求,注意执行post请求的入参,不需要写在params字段中,这个地方要注意与get请求的第二种方式进行区别。

1

2

3

4

5

6

7

8

axios.post('/getMainInfo', {

  id: 123})

.then((res) => {

  console.log(res)

})

.catch((err) => {

  console.log(err)

})

axios和ajax的区别:

axios是通过Promise实现对ajax技术的一种封装,就像jquery对ajax的封装一样,简单来说就是ajax技术实现了局部数据的刷新,axios实现了对ajax的封装,axios有的ajax都有,ajax有的axios不一定有,总结一句话就是axios是ajax,ajax不止axios。

axios与ajax的优缺点的更多相关文章

  1. axios与ajax的区别及优缺点

    区别:axios是通过Promise实现对ajax技术的一种封装,就像jquery对ajax的封装一样,简单来说就是ajax技术实现了局部数据的刷新,axios实现了对ajax的封装,axios有的a ...

  2. Axios发送AJAX请求

    目录 Axios 特征 axios提供主要三种发起请求的方式 方式一:直接axios实例直接call方式 方式二:通过axios实例提供的不同http请求方式的方法 方式三:其实是从第二种方式中单独提 ...

  3. axios 或 ajax 请求文件

    axios 或 ajax 请求文件 axios({ url: path + '/monitor/exportPicture' + '?access_token=' + getToken(), meth ...

  4. vue使用axios进行ajax请求

    以前都用resource进行ajax请求,现在官方推荐使用axios,所以现在更换插件.这篇文章主要描写如何在项目中引入axios以及简单地使用axios进行ajax请求. 第一步,需要通过npm安装 ...

  5. Axios 取消 Ajax 请求

    Axios 取消 Ajax 请求 Axios XMLHttpRequest https://caniuse.com/?search=XMLHttpRequest https://developer.m ...

  6. axios与ajax区别

    1.jQuery ajax $.ajax({ type: 'POST', url: url, data: data, dataType: dataType, success: function () ...

  7. axios、ajax、fetch三者的区别

    1.ajax:是指一种创建交互式网页应用的网页开发技术,并且可以做到无需重新加载整个网页的情况下,能够更新部分网页,也叫作局部更新 优缺点: 1)局部更新 2)原生支持,不需要任何插件 3)原生支持, ...

  8. 来了解一下Ajax是什么?Ajax的原理?Ajax与传统Web比较?Ajax的优缺点?Ajax的Post与Get比较

    一.什么是Ajax Ajax(Asynchronous Java and XML的缩写)是一种异步请求数据的web开发技术,对于改善用户的体验和页面性能很有帮助.简单地说,在不需要重新刷新页面的情况下 ...

  9. axios和ajax,fetch的区别

    1,传统 Ajax 指的是 XMLHttpRequest(XHR), 最早出现的发送后端请求技术,隶属于原始js中,核心使用XMLHttpRequest对象,多个请求之间如果有先后关系的话,就会出现回 ...

  10. axios与ajax的区别及中文用户指南

    Ajax: Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术. $.ajax({ ty ...

随机推荐

  1. Day12 面向对象

    面向对象 前提须知:Java中想要创建对象,必须要有类的存在 类和对象的关系: 依赖关系:需要根据类,创建对象 数量关系:根据一个类,可以创建出多个对象 创建Student类的对象进行使用 创建对象的 ...

  2. Java异常之Error和Exception

    异常Exception 实际工作中,遇到的情况不可能是非常完美的.比如:你写的某个模块,用户输入不一定符合你的要求.你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数 ...

  3. 西湖论剑2023-mp3[wp]

    一 题目描述 二 解题步骤 1.分析文件 (1)放入Audacity中查看频谱信息无果 (2)010editor中查看文件结构 文件尾部存在PNG文件尾,搜索png文件头 将该png文件复制提取出来, ...

  4. JavaScript 类(class)

    JavaScript 类(class) 类是用于创建对象的模板. 我们使用 class 关键字来创建一个类,类体在一对大括号 {} 中,我们可以在大括号 {} 中定义类成员的位置,如方法或构造函数. ...

  5. App自动化中 - 三大元素定位工具

    文章转自:https://blog.csdn.net/lkm564513278/article/details/105511411 在日常android app自动化测试工作当中,使用一种工具可能难以 ...

  6. 重写Collections集合的排序比较CompareTo方法

    Collections.sort()使用该方法实际是重写Comparator接口的compare方法实现排序: //传入参数list集合,Comparator接口 T:list的元素类型 //如Lis ...

  7. C语言利用union 和 struct 进行位拆分

    #include <stdlib.h> typedef unsigned char uint8_t; union wate_temp{ struct { uint8_t wate_temp ...

  8. Python全栈学习笔记---问题总结(五)

    一.全局变量和局部变量 在函数内声明全局变量:globle 二.数值型lis和字符型list转换 数值型list转字符型list 3.x: array = [1, 2, 3, 4, 5,6 ] arr ...

  9. ntpq 详解

    Gentoo(也许其他发行版也是?)中 "ntpq -p" 的 man page 只有简短的描述:"打印出该服务器已知的节点列表和它们的状态概要信息." 我还没 ...

  10. HCIP-进阶实验04-多运营商BGP协议部署

    HCIP-进阶实验04-多运营商BGP协议部署 1 实验拓扑 2 实验环境说明 2.1 IP地址规划表 设备 接口 IP地址 备注 R1 G0/0/0 12.12.12.1/30 Loopback0 ...