通过Ajax构造HTTP请求

Ajax,即异步JavaScript和XML,允许JavaScript发起HTTP请求,实现页面无刷新数据传输。本文介绍了Ajax的使用,包括XMLHttpRequest对象的运用,以及JSON字符串在JavaScript中的解析方法。在执行过程中,详细阐述了从用户输入URL到浏览器加载完成,包括HTML、JS脚本加载及JSON数据获取的整个流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

Ajax(Asynchronous Javascript And XML)的使用

JS中如何解析JSON字符串

执行过程


Asynchronous Javascript And XML,是一种JavaScript给服务器发送HTTP请求的方式。

特点:可以不需要刷新页面或者跳转页面就可以进行数据传输。

Ajax(Asynchronous Javascript And XML)的使用

提供给JS可以发起HTTP请求的能力(同一个域名下才有权限):

XMLHttpRequest()对象的使用

open(method,url)方法的使用,send()方法 οnlοad=function(){...}

responseText:响应体

JS中如何解析JSON字符串

JSON.parse(jsonString)方法;

代码使用:

students.js:

// 利用这个对象发起 HTTP 请求
var xhr = new XMLHttpRequest();
xhr.open("get", "/data/students.json");
// 以时间驱动的方式,读取响应 —— 当 xhr 完成响应时,执行我们准备好的函数
xhr.onload = function () {
    console.log(this);      // this 就是 xhr 对象
    console.log(this.responseText); // string 类型
    console.log(xhr.responseText);  // string 类型

    // 我们希望把 json 字符串解析成 js 的具体数据类型
    var sts = JSON.parse(this.responseText);
    console.log(sts);

    var body=document.querySelector('body');
    for(var i in sts){
        var st=sts[i];
        body.innerHTML+=`<div>${st.name}</div>`;
    }
}
xhr.send(); // 发送 HTTP 请求
index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Ajax 请求</title>
</head>
<body>
    <script src="js/script.js"></script>
</body>
</html>

执行过程

 代码中,行为主体:用户,浏览器(进程),Tomcat(进程)

1、用户在浏览器中输入.../index.html

2、浏览器分析用户的输入,构建HTTP请求(GET请求),浏览器向服务器发送HTTP请求(index.html)

3、Tomcat收到请求,根据资源路径,找到对应的文件(webapp/index.html)读取内容,准备相应并发送

4、读取相应体,根据相应头content-type决定,按照HTML方式对待内容,解析HTML中标签

5、在解析过程中,看到<script src="js/script.js"></script>,构造一个新的HTTP请求(GET /js/script.js)

6、Tomcat根据资源路径,找到对应的文件,读取内容,准备HTTP响应( 200 aplication/javascript )

7、浏览器读取响应体,根据content-type,执行js代码(构建XMLHttpRequest()实例化对象xhr,send()),浏览器构建HTTP请求(GET /data/students.json)

8、Tomcat根据资源路径,找到对应的文件,读取内容students.json,读取内容,准备相应并发送

9、浏览器读取响应,执行JS代码中写的xhr.onland函数(XMLHttpRequest()实例化对象xhr):这个函数中,我们希望把 json 字符串解析成 js 的具体数据类型:var sts = JSON.parse(this.responseText);

10、浏览器得到最终的DOM结构,显示内容

11、用户看到网页的最终形式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值