AJAX & Axios 总结

AJAX & Axios

1. AJAX

AJAX & Axios 总结

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

; 1.1 作用

①与服务器进行数据交换

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

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

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

AJAX & Axios 总结

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

现在做法:
使用AJAX和服务器通信,使用 AJAX+HTML 来替换 JSP

AJAX & Axios 总结

; ②异步交互

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

:搜索联想

AJAX & Axios 总结
异步和同步

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

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

AJAX & Axios 总结

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

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

; 1.2 基本使用

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

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

前端

  1. 创建核心对象 XMLHttpRequest 对象,用于和服务器交换数据;
    AJAX & Axios 总结
  2. 向服务器发送请求;
    open()方法打开请求,GET即方式, url 是servlet 全路径 ,(第三个参数是同步true,异步false,默认异步)
    AJAX & Axios 总结
    为什么是全路径:因为浏览器和Servlet将来不在一个服务器部署,是 前后端分开部署的,所以要全类名!
  3. 获取服务器响应数据
    使用 xmlhttp 绑定事件属性 onreadystatechange,判断是否已经完成响应,则执行 回调函数function; 完成响应判断:就绪状态是4(请求发送完响应已收到)且HTTP响应报文的响应状态码是200 即成功,则获取响应数据;
    AJAX & Axios 总结

readyState状态码

AJAX & Axios 总结

1.3 案例

需求:当用户名框失去焦点( onblur事件)时,检验用户名是否存在于数据库中;

AJAX & Axios 总结

思路

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

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

; SelectUserServlet:

从request获取前端输入的用户名username,然后返回响应到response;

AJAX & Axios 总结

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">

                    <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">

                    <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中的

Original: https://blog.csdn.net/Swofford/article/details/128749810
Author: 斯沃福德
Title: AJAX & Axios 总结

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/811729/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球