AJAX基础教程

这篇具有很好参考价值的文章主要介绍了AJAX基础教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、引言

就是异步刷新,AJAX要和XMLHttpRequest对象、JavaScript/DOM、CSS、XML一起使用

2、XMLHttpRequest对象

XMLHttpRequest对象,异步的与服务器交换数据,这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新
XMLHttpRequest对象是ajax的基础
语法

var xhr = new XMLHttpRequest();

2.1 语法格式

如需将请求发送到服务器,使用XMLHttpRequest()对象的open()、send()方法
send发送的数据,给到open方法的url定义的页面里面

方法 描述
open(method,url,async 规定请求的类型、URL以及是否异步处理请求。method:请求的类型(GET或者POST);url:文件在服务器上的位置;async:true(异步)或false(同步),这个是默认true的不用设置
send(string) 将请求发送到服务器。string:仅用于POST请求

2.2 get请求代码

2.2.1 一个简单的GET请求

<script type="text/javascript">
var xhr = new XMLHttpRequest();
    xhr.open("get", "data",true);
    xhr.send();
</script>

其中的data是一个Servlet页面

2.2.2 url加唯一的ID

在上面的例子中,您可能得到的是缓存的结果,为了避免这种情况,向URL添加一个唯一的ID(t=Math.random())

<script type="text/javascript">
	 var xhr = new XMLHttpRequest();
     xhr.open("get","data?t="+Math.random(),true)
   	 xhr.send(); 
</script>

2.2.3 通过GET方法发送数据

向URL添加信息(username = zhangsan、password = 123)

<script type="text/javascript">
 	var xhr = new XMLHttpRequest();
    xhr.open("get","data?username=zhangsan&password=123",true)
    xhr.send();
</script>

2.3 post请求代码

一个简单的POST请求

<script>
    var xhr = new XMLHttpRequest();
    //一个简单的POST请求
    xhr.open("POST","data",true);
    xhr.send(); 
</script>

如果需要像html的form表单那样post数据,请使用setRequestHeader()添加HTTP头,在send()方法中规定发送的数据

<script>
    var xhr = new XMLHttpRequest();
    xhr.open("POST","data",true);
    xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xhr.send("username=zhangsan&password=123");
</script>

2.4 readyState

语法

<script type="text/javascript">
    var xhr = new XMLHttpRequest();
    xhr.open("get", "data",true);
    xhr.send();
    xhr.onreadystatechange = () => {
        if (xhr.readyState == 4 && xhr.status == 200) {
            alert(xhr.responseText);
        }
    }
</script>

每当readyState改变时,就会触发。onreadystatechange事件
在onreadystatechange事件中,添加任务
readyState属性存有XMLHttpRequest的状态信息
当readyState等于4且状态为200时,表示响应以就绪

属性 描述
onreadystatechange 存储函数(或函数名),每当readyState属性改变时,就会调用该函数。
readyState 存有XMLHttpRequest的状态。从0到4发生变化。0:请求未初始 1:服务器连接已建立 2:请求已接收 3:请求处理中 4:请求已完成,且响应已就绪
status 例:200:“OK”;404:未找到页面

3、例题1–用alert在浏览器输出servlet页面定义的字符串

servlet页面代码

@WebServlet(name = "DataServlet", value = "/data")
public class DataServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        String mess = "刘雨昕新歌未知计划上线啦!!!!";
        PrintWriter printWriter = response.getWriter();
        printWriter.write(mess);
        printWriter.flush();
        printWriter.close();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

html页面代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
    var xhr = new XMLHttpRequest();
    xhr.open("post", "data",true);
    xhr.send();
    xhr.onreadystatechange = () => {
        if (xhr.readyState == 4 && xhr.status == 200) {
            alert(xhr.responseText);
        }
    }
</script>
</body>
</html>

4、post例题

点击显示div内容文章来源地址https://www.toymoban.com/news/detail-592853.html

@WebServlet(name = "DataServlet", value = "/data")
public class DataServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");

        String name = request.getParameter("name");
        String pwd = request.getParameter("pwd");
        PrintWriter printWriter = response.getWriter();
        printWriter.write("name:"+name+",password:"+pwd);
        printWriter.flush();
        printWriter.close();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #div1 {
            width: 200px;
            height: 100px;
            border: solid 2px rgba(255, 43, 10, 0.96);
        }
    </style>
</head>
<body>
<button id="btn">点击显示div</button>
<div id="div1"></div>
<script type="text/javascript">
    var xhr = new XMLHttpRequest();
    xhr.open("post", "data", true);
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.send("name=zhangsan&pwd=123");
    var div = document.getElementById("div1");
    var btn = document.getElementById("btn");
    btn.addEventListener('click', () => {
            div.innerText = xhr.responseText;
    })

</script>
</body>
</html>

到了这里,关于AJAX基础教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ajax面试题 | 前端

    本文的Ajax面试题主要来源于网上的文章和课程,会有出处注明。 本文主要作为自用备忘。 Ajax知识点笔记 Ajax是异步的javascript和xml Ajax是一种用于创建快速动态网页的技术 作用 :ajax用来与后台交互 优点 : 最大的优点就是页面无需刷新,在页面内与服务器通信,非常好的用

    2023年04月08日
    浏览(43)
  • Ajax及前端工程化

    Ajax:异步的js与xml。 作用: 1、通过ajax给服务器发送数据,并获得其响应的数据。 2、可以在不更新整个网页的情况下,与服务器交换数据并更新部分网页的技术。  1、准备数据地址  2、创建XMLHttpRequest对象,用于和服务器交换数据  3、向服务器发送请求  4、获取服务器响

    2024年02月12日
    浏览(65)
  • 【前端】尚硅谷Node.js零基础视频教程笔记

    【前端目录贴】 参考视频 : 尚硅谷Node.js零基础视频教程,nodejs新手到高手 node -v 查看版本号 node hello.js 运行js文件 Node.js中不能使用 BOM 和 DOM 的API 说明:浏览器中的javascript语法包括如下内容组成部分 node.js语法的组成部分 Buffer 是一个类似于数组的 对象 ,用于表示固定长度的

    2024年01月25日
    浏览(68)
  • 前端学习——ajax (Day3)

    使用 XMLHttpRequest XMLHttpRequest - 查询参数 XMLHttpRequest - 数据提交 Promise - 三种状态

    2024年02月16日
    浏览(43)
  • 前端学习——ajax (Day1)

    axios 使用 练习 练习 案例 axios 错误处理 https://apifox.com/apidoc/shared-1b0dd84f-faa8-435d-b355-5a8a329e34a8 url好像失效了

    2024年02月16日
    浏览(38)
  • 前端学习——ajax (Day4)

    Promise - 链式调用

    2024年02月16日
    浏览(36)
  • 前端学习--Ajax(3) XHR/axios

    1.1 概念 XMLHttpRequest(XHR)是一种用于在客户端和服务器之间发送HTTP请求的JavaScript API。它允许客户端在不重新加载整个页面的情况下向服务器发送请求,并根据服务器的响应更新页面的局部内容。Ajax是基于XHR封装的。 1.2 使用xhr发起get请求 步骤 创建XHR对象 调用XHR.open()函数

    2023年04月26日
    浏览(36)
  • 前端常见面试题之ajax、http

    xhr.readyState 有以下状态值,分别代表的意思如下: 状态值 意思 0 未初始化,尚未调用open方法 1 启动,已经调用open方法 2 发送,已经调用send方法 3 接收,正在接收响应数据 4 完成,已经接收到全部响应数据 请注意,在这个表格中,状态值是从0开始的,0代表xhr对象已经被创

    2024年01月17日
    浏览(47)
  • 前端知识笔记(二)———Django与Ajax

    特点:         异步提交         局部刷新 例子:github注册 动态获取用户名实时的跟后端确认并实时的展示到前端(局部刷新)  朝后端发送请求的方式         1.浏览器地址栏直接输入url回车 -----》get请求         2.a标签的href属性  -----》get请求         3.form表单 --

    2024年02月05日
    浏览(40)
  • CSS样式前端HTML页面常用CSS效果实现及其相关配置信息------前端入门基础教程

    !DOCTYPE html !-- 这是HTML的注释 -- html lang=\\\"en\\\" id=\\\"myHtml\\\"     head         !-- 这里不是设置了编码,而是告诉浏览器,用什么编码方式打开文件避免乱码 --         meta charset=\\\"UTF-8\\\"         meta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"         titleHtmlAll/title         

    2024年02月05日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包