当前位置: 首页 > news >正文

JavaScript:Ajax(异步通信技术)

一、Ajax 核心概念

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

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

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

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

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

 

二、XMLHttpRequest 工作流程

 

 三、代码解析

 

<!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. 未触发回调:检查readyStatestatus条件

 

http://www.dtcms.com/a/311340.html

相关文章:

  • 学习模板元编程(2)std::true_type/false_type
  • 垃圾收集器ParNewCMS与底层三色标记算法详解
  • Redisson高并发实战:Netty IO线程免遭阻塞的守护指南
  • JVM 03 类加载机制
  • uniapp scroll-view解析
  • 常用git命令
  • 算法训练营DAY46 第九章 动态规划part13
  • 【龙芯99派新世界】buildroot快速使用笔记
  • SPI通信中CS片选的两种实现方案:硬件片选与软件片选
  • 电力系统分析学习笔记(二)- 标幺值计算与变压器建模
  • QT5.12.8 QTabWidget 透明样式QSS
  • Flask + YARA-Python*实现文件扫描功能
  • C++音视频开发:基础面试题
  • STM32 GPIO 中8种配置模式
  • 图漾AGV行业常用相机使用文档
  • 快速了解机器学习
  • 【机器学习】非线性分类算法详解(下):决策树(最佳分裂特征选择的艺术)与支持向量机(最大间隔和核技巧)
  • Python Pandas.unique函数解析与实战教程
  • mac中使用gvm install没有效果
  • 【Android】进度条ProgressBar 可拖拽进度条Seekbar
  • 云运维解决方案(word)
  • Python 入门指南:从零基础到环境搭建
  • 数字化转型-灯塔工厂建设
  • StyleX:Meta推出的高性能零运行时CSS-in-JS解决方案
  • 数字图像处理(冈萨雷斯)第三版:第一章绪论主要内容和重点——(数字图像处理的一些概念)
  • C语言数据结构(4)单链表专题2.单链表的应用
  • 什么是需量跟随
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现道路上头盔的检测识别(C#代码,UI界面版)
  • Linux 嵌入式开发全流程
  • C语言(长期更新)第7讲:VS实用调试技巧