JavaScript:Ajax(异步通信技术)

一、Ajax 核心概念

Ajax(Asynchronous JavaScript and XML)是一种异步通信技术,核心特点:

  1. 无刷新更新:无需重新加载整个页面

  2. 异步处理:后台发送/接收数据不阻塞用户

  3. 数据格式:支持 XML/JSON/HTML/纯文本

  4. 应用场景:表单验证、实时搜索、无限滚动等

二、XMLHttpRequest 工作流程

三、代码解析

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Ajax 实战</title>
</head>
<body>
    <div id="saze"></div>
    
    <script>
        // 1. 创建XHR对象
        const xhr = new XMLHttpRequest();
        
        // 2. 配置请求(GET异步)
        xhr.open(
            "GET",
            "https://mock.mengxuegu.com/mock/67da2f89b3f51e45c0f7bfb1/data_copy/sa",
            true
        );
        
        // 3. 发送请求(GET无需参数)
        xhr.send();
        
        // 4. 事件监听(推荐使用onload)
        xhr.onload = function() {
            // 状态码200表示成功
            if (xhr.status === 200) {
                try {
                    // 5. 解析JSON数据
                    const pageData = JSON.parse(xhr.responseText);
                    
                    // 6. 获取DOM容器
                    const container = document.getElementById('saze');
                    
                    // 7. 高效DOM操作(减少重绘)
                    let htmlContent = '';
                    pageData.data.admain.forEach(user => {
                        htmlContent += `用户名:${user.username} 密码:${user.password}<br>`;
                    });
                    
                    container.innerHTML = htmlContent;
                    
                } catch (e) {
                    console.error("JSON解析失败:", e);
                }
            } else {
                console.error(`请求失败,状态码:${xhr.status}`);
            }
        };

        // 8. 错误处理(网络层)
        xhr.onerror = function() {
            alert("网络请求发生错误");
        };
    </script>
</body>
</html>

四、关键点详解

1.XMLHttpRequest 生命周期

  • readyState 状态码:

    • 0:未初始化

    • 1:open() 已调用

    • 2:send() 已调用

    • 3:接收响应中

    • 4:响应完成(需在此处理数据)

2.HTTP 状态码处理

  • 200:成功

  • 201:创建成功

  • 400:客户端错误

  • 401:未授权

  • 404:资源不存在

  • 500:服务器错误

六、常见问题排查

  1. 跨域错误:检查服务端CORS配置

  2. 状态码0:通常是网络断开或跨域限制

  3. 解析错误:确保响应是合法JSON

  4. 未触发回调 :检查readyState和status条件

相关推荐
子兮曰6 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰6 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万6 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝6 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋6 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁6 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
李少兄6 天前
JavaScript 隐式全局变量解析
javascript
汉堡大王95276 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大6 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端
计算机魔术师6 天前
Meta Muse agent 接入 Shopify 的 Shop Pay 实现代理式购物
前端