AJAX Axios 总结

news2024/9/25 9:29:16

AJAX & Axios

  • 1. AJAX
    • 1.1 作用
      • ①与服务器进行数据交换
      • ②异步交互
        • 异步和同步
    • 1.2 基本使用
    • 1.3 案例
      • SelectUserServlet:
      • register.html:
      • register.html中的<script
  • 2. Axios异步框架
    • 2.1 基本使用
    • 2.2 案例
      • axiosServlet:
      • axios-demo.html:
    • 2.3 请求方式别名(简化)

1. AJAX

在这里插入图片描述

即异步的JavaScript和XML,是一种前端的动态请求方式

1.1 作用

①与服务器进行数据交换

通过AJAX可以给服务器发送请求,并接收服务器响应的数据;

即通过AJAX可以将服务器返回的数据传给浏览器,而html、javaScript做不到从服务器获取数据,如服务器查询了数据,无法通过javaScript将数据交给浏览器;

以前做法
数据从Servlet 查询出来,在Servlet中将数据存入request域,再转发到jsp 去展示数据!
在这里插入图片描述

用JSP原因
只用HTML无法获取服务端返回的数据!所以用jsp;而AJAX可以获取服务端的数据了,所以替代了jsp!

现在做法:
使用AJAX和服务器通信,使用AJAX+HTML 来替换JSP
在这里插入图片描述

②异步交互

可以【在不重新加载整个页面的情况下】,与服务器交换数据并更新部分网页的技术,如:搜索联想、用户是否可用校验等等;

:搜索联想
在这里插入图片描述

异步和同步

同步
客户端浏览器请求服务端,服务器此时要处理,处理这段时间客户端必须等待,等服务器给客户端做出响应,等客户端收到响应后才能继续访问!

异步
如果客户端发送的是异步请求,那么客户端不用等待服务器端的响应,而可以继续执行其他操作;’
在这里插入图片描述

:“提交注册”就是同步请求,点击后浏览器会刷新等待;
而发送异步请求后,浏览器并不会刷新等待,而是悄悄发送请求给浏览器,用户可以继续做其他操作;

异步回调: 指的是在发起一个异步任务的同时指定一个函数,在异步任务完成时会自动的调用这个函数;

1.2 基本使用

分两端, 在服务端写接收请求并响应数据的代码,在HTML写请求客户端的代码,由AJAX去接收servlet发来的数据;

后端:编写AjaxServlet,使用response输出要给前端的数据

前端

  1. 创建核心对象 XMLHttpRequest 对象,用于和服务器交换数据;
    在这里插入图片描述

  2. 向服务器发送请求;
    open()方法打开请求,GET即方式,url 是servlet 全路径 ,(第三个参数是同步true,异步false,默认异步)
    在这里插入图片描述
    为什么是全路径:因为浏览器和Servlet将来不在一个服务器部署,是前后端分开部署的,所以要全类名!

  3. 获取服务器响应数据
    使用xmlhttp 绑定事件属性onreadystatechange,判断是否已经完成响应,则执行回调函数function;

    完成响应判断:就绪状态是4(请求发送完响应已收到)且HTTP响应报文的响应状态码是200 即成功,则获取响应数据;
    在这里插入图片描述

readyState状态码
在这里插入图片描述

1.3 案例

需求:当用户名框失去焦点(onblur事件)时,检验用户名是否存在于数据库中;
在这里插入图片描述

思路

前端:
1.在前端页面的onblur事件属性绑定函数,
2.当onblur事件发生,使用AJAX发送请求并携带username数据;
3.前端获取响应,执行回调函数

后端:
1.获取username
2.调用Service查询数
3.响应标记!(标记的含义和前端协调好)

SelectUserServlet:

从request获取前端输入的用户名username,然后返回响应到response;
在这里插入图片描述

register.html:

注意:

  1. 请求方式是GET
  2. 这里表单的action 不是servlet地址,其请求是使用AJAX发往servlet的;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>欢迎注册</title>
    <link href="css/register.css" rel="stylesheet">
</head>
<body>

<div class="form-div">
    <div class="reg-content">
        <h1>欢迎注册</h1>
        <span>已有帐号?</span> <a href="login.html">登录</a>
    </div>
    <form id="reg-form" action="#" method="get">

        <table>

            <tr>
                <td>用户名</td>
                <td class="inputs">
                    <input name="username" type="text" id="username">
                    <br>
                    <span id="username_err" class="err_msg" style="display: none">用户名已存在</span>
                </td>

            </tr>

            <tr>
                <td>密码</td>
                <td class="inputs">
                    <input name="password" type="password" id="password">
                    <br>
                    <span id="password_err" class="err_msg" style="display: none">密码格式有误</span>
                </td>
            </tr>


            <tr>
                <td>验证码</td>
                <td class="inputs">
                    <input name="checkCode" type="text" id="checkCode">
                    <img src="imgs/a.jpg">
                    <a href="#" id="changeImg">看不清?</a>
                </td>
            </tr>

        </table>

        <div class="buttons">
            <input value="注 册" type="submit" id="reg_btn">
        </div>
        <br class="clear">
    </form>

</div>

register.html中的<script

注意:

  1. servelt的路径是完整路径
  2. GET方式要把数据写入url 后面!
    在这里插入图片描述
    效果
    光标移开时即发送异步请求,客户端获取响应后执行回调函数,显示提示语;
    在这里插入图片描述

2. Axios异步框架

Axios是一个基于promise的网络请求库,作用于node.js和浏览器中;
是对原生AJAX的封装,简化书写;

2.1 基本使用

  1. 引入axios的JavaScript文件(源码)
    在这里插入图片描述
  2. 发送请求,注意在axios()中写 { JavaScript对象 }
    .then设置回调函数,即servlet发的响应被前端收到后会执行的方法!
    在这里插入图片描述

GET和POST方式区别
GET的参数要传入url中;而POST的参数要单独放在data中;

2.2 案例

需求:后端获取输入参数,并返回 “hello Axios”

axiosServlet:

1.接收参数
2.设置响应到response
在这里插入图片描述

axios-demo.html:

1.先将axios文件放入js文件夹,再将axios的JavaScript文件(源码)引入;
2.将script代码写到 { JavaScript对象 } 内:

注意

  1. 先拿到servlet的全路径,如果是GET请求方式,则把请求参数放在路径后面!
  2. 当方法执行后,response就会收到请求数据,在axios中是resp,resp.data就是由servlet发出来的数据;

GET方式:
在这里插入图片描述

POST方式:
在这里插入图片描述

注意
有两个data,一个是发送给servle的参数,第二个是response返回来的数据;

效果
访问axios-demo.html:
即servlet收到了请求并返回hello Axios,客户端AJAX收到响应后执行回调函数,中将这句话alert !

在这里插入图片描述

2.3 请求方式别名(简化)

为了方便,axios已经为所有请求方式提供了别名:
在这里插入图片描述

改进上例
GET
在这里插入图片描述
POST
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/175974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Elasticsearch7.8.0版本高级查询—— 聚合查询文档

目录一、初始化文档数据二、聚合查询文档2.1、概述2.2、对某个字段取最大值 max 示例2.3、对某个字段取最小值 min 示例2.4、对某个字段求和sum 示例2.5、对某个字段取平均值 avg 示例2.6、对某个字段的值进行去重之后再取总数 示例三、State 聚合查询文档3.1、概述3.2、示例一…

目标检测论文解读复现【NO.24】改进 YOLOv5s 的轨道障碍物检测模型轻量化研究

前言此前出了目标改进算法专栏&#xff0c;但是对于应用于什么场景&#xff0c;需要什么改进方法对应与自己的应用场景有效果&#xff0c;并且多少改进点能发什么水平的文章&#xff0c;为解决大家的困惑&#xff0c;此系列文章旨在给大家解读最新目标检测算法论文&#xff0c;…

Cadence PCB仿真使用Allegro PCB SI生成反射仿真报告及报告导读图文教程

🏡《Cadence 开发合集目录》   🏡《Cadence PCB 仿真宝典目录》 目录 1,概述2,生成报告3,报告导读4,总结1,概述 本文简单介绍使用Allegro PCB SI生成网络的反射性能评估的报告的方法,及反射报告要点导读。 2,生成报告 第1步,选择需要生成报告的网络,然后单击右…

(侯捷C++)1.2面向对象高级编程(上)

1.整体结构 2.三大函数&#xff1a;拷贝构造&#xff0c;拷贝赋值&#xff0c;析构 拷贝构造&#xff1a;第一次出现对象&#xff0c;使用拷贝构造进行创建&#xff0c;例如&#xff1a;String s3(s1)。拷贝赋值&#xff1a;对象已经构造&#xff0c;重新赋值&#xff0c;例如…

人工智能辅助药物发现(4)药物重定位

目录药物重定位概述药物重定位数据库表示学习基于序列的表示学习基于图的表示学习药物重定位深度学习以靶点为中心以疾病为中心药物重定位的应用药物重定位概述 新药物的研发投资巨大&#xff0c;周期漫长。从获批准的临床药物中有效识别新的适应药物在药物发现中起到重要作用…

cc123 靶场测试笔记

1.cc123 靶场介绍本靶场存在四个 flag 把下载到的虚拟机环境导入到虚拟机&#xff0c;本靶场需要把网络环境配置好。1.1.网络示意图2. 信息收集2.1.主机发现sudo netdiscover -i eth0 -r 192.168.0.0/242.2.masscan 端口扫描sudo masscan -p 1-65535 192.168.1.102 --rate10002…

Elasticsearch7.8.0版本高级查询—— 高亮查询文档

目录一、初始化文档数据二、高亮查询文档2.1、概述2.2、示例一、初始化文档数据 在 Postman 中&#xff0c;向 ES 服务器发 POST 请求 &#xff1a;http://localhost:9200/user/_doc/1&#xff0c;请求体内容为&#xff1a; { "name":"zhangsan", "ag…

<Python的文件>——《Python》

目录 1.文件 1.1 文件是什么 1.2 文件路径 1.3 文件操作 1.3.1 打开文件 1.3.2 关闭文件 1.3.3 写文件 1.3.4 读文件 1.3.5 关于中文的处理 1.4 使用上下文管理器 1.文件 1.1 文件是什么 变量是把数据保存到内存中. 如果程序重启/主机重启, 内存中的数据就会丢失.…

23种设计模式(十八)——组合模式【数据结构】

文章目录 意图什么时候使用组合真实世界类比组合模式的实现组合模式的优缺点亦称: 对象树、Object Tree、Composite 意图 有时又叫作整体-部分(Part-Whole)模式,是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致…

【并发编程】Executor线程池

一、线程 1.线程 线程是调度CPU资源的最小单位。java线程与OS线程保持1:1映射关系&#xff0c;也就是说&#xff0c;一个Java线程也会在操作系统里有一个对应线程。 2.线程的生命周期 NEW,新建 RUNNABLE,运行 BLOCKED,阻塞 WAITING,等待 TIMED_WAITING,超时等待 TERMINATED…

超级完整的 Git 下载、安装与配置

Git的下载、安装与配置 一、git下载安装 1、访问git官方下载网址&#xff0c;点击这里&#xff0c;然后根据自己的电脑系统&#xff0c;下载对应的安装包&#xff1a; 2、在淘宝镜像网站 下载对应的安装包&#xff1a; 注&#xff1a; 如果由于官网下载速度过于缓慢&#xff…

String 有趣简单的编程题

String 有趣简单的编程题 每博一文案 师父说: 世上没有真正的感同身受&#xff0c;也没有谁能完全做到将心比心&#xff0c;我们一路走来。 慢慢的学会了收敛情绪&#xff0c;越成熟越沉默&#xff0c;有些人&#xff0c;背负沉重的压力&#xff0c;却从来不敢说累&#xff0c…

[python刷题模板] 树的直径/换根DP

[python刷题模板] 树的直径/换根DP 一、 算法&数据结构1. 描述2. 复杂度分析3. 常见应用4. 常用优化二、 模板代码1. 单纯询问树的直径值2. 求出树的直径两端搞事情3. 换根DP求树的直径(大炮打蚊子&#xff0c;别这么做&#xff0c;只是用来帮助理解换根DP)4. 换根dp求特定…

UDS诊断系列介绍14-2F服务

本文框架1. 系列介绍1.1 2F服务概述2. 2F服务请求与应答2.1 2F服务请求2.2 2F服务正响应2.3 2F服务否定响应3. 2F诊断使用示例4. Autosar系列文章快速链接1. 系列介绍 UDS&#xff08;Unified Diagnostic Services&#xff09;协议&#xff0c;即统一的诊断服务&#xff0c;是…

学习记录667@项目管理之项目人力资源管理

什么是项目人力资源管理 项目人力资源管理包括编制人力资源管理计划、组建项目团队、建设项目团队与管理项目团队的各个过程&#xff0c;不但要求充分发挥参与项目的个人的作用&#xff0c;还包括充分发挥所有与项目有关的人员-----项目负责人、客户、为项目做出贡献的个人及其…

[QMT]04-在QMT之外调用xtquant直接编写策略

背景希望不用在QMT软件里面憋屈地写代码&#xff0c;想使用pychar、vscode、notepad等IDE编写python代码&#xff0c;因为有代码提示、补全。这完全没问题&#xff01;QMT简直是为个人量化交易者量身打造的神器&#xff0c;它支持以上想法。QMT这个东东基本是由两部分组成的&am…

1. 深度学习简介|计算机视觉简介|得分函数|损失函数作用|前向传播整体流程

文章目录深度学习简介计算机视觉简介k近邻算法得分函数损失函数作用前向传播整体流程机器学习是一个大块&#xff0c;其中就包含着深度学习&#xff0c;计算机视觉等 机器学习的流程&#xff1a; 数据获取特征工程建立模型评估与应用 深度学习简介 深度学习通过特征学习进行…

力扣sql简单篇练习(四)

力扣sql简单篇练习(四) 1 超过五名学生的课 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT class FROM Courses GROUP BY class HAVING count(student)>51.3 运行截图 2 超过经理收入的员工 2.1 题目内容 2.1.1 基本题目信息 2.1.2 示例…

零信任-发展历程及概念(1)

零信任发展历程 2010 Forrester约翰金德维格正式提出零信任概念 2013 CSA成立软件定义边界SDP工作组,次年发布SDP标准规范1.0 2017 Gartner正式提出“CARTA”零信任模型 2018 Forrester发表零信任扩展模型ZTX 2019 Gartner发布零信任网络&#xff08;ZTNA&#xff09;云安…

String 与 StringBuffer 与 StringBuilder 各自的妙用

String 与 StringBuffer 与 StringBuilder 各自的妙用 每博一文案 我从未见过&#xff0c;一个早起&#xff0c;勤奋&#xff0c;谨慎&#xff0c;诚实的人&#xff0c;抱怨命运不好的。 最完美的状态&#xff0c;不是你从不失误&#xff0c;而是你从没放弃成长。没人能把你变…