掌握 XMLHttpRequest:JavaScript 中 AJAX 调用指南
用于 AJAX 调用的 XMLHttpRequest
XMLHttpRequest (XHR) 对象是 JavaScript 的一项核心功能,它允许您从服务器异步发送和接收数据,而无需刷新网页。它构成了 AJAX(异步 JavaScript 和 XML)的基础,支持动态和交互式 Web 应用程序。
1.什么是 XMLHttpRequest?
XMLHttpRequest 是 JavaScript 中的 API,可促进通过 HTTP 请求与服务器进行通信。它支持:
- 无需重新加载页面即可检索数据。
- 处理各种格式,如 JSON、XML、HTML 和文本。
- 同步和异步操作(尽管在大多数用例中不推荐使用同步模式)。
2.创建 XMLHttpRequest 对象
要使用 XHR,请创建 XMLHttpRequest 对象的实例:
const xhr = new XMLHttpRequest();
3.进行 XHR 调用的步骤
- 创建 XHR 对象:
const xhr = new XMLHttpRequest();
- 初始化请求: 使用 open() 方法定义 HTTP 方法、URL 以及调用是否异步。
xhr.open("GET", "https://api.example.com/data", true);
- 设置响应回调: 使用 onreadystatechange 事件或 load 事件。
xhr.onload = function () { if (xhr.status === 200) { console.log("Response:", xhr.responseText); } else { console.error("Error:", xhr.status, xhr.statusText); } };
- 发送请求:
xhr.send();
4.完整示例:GET 请求
const xhr = new XMLHttpRequest(); xhr.open("GET", "https://jsonplaceholder.typicode.com/posts", true); xhr.onload = function () { if (xhr.status === 200) { console.log("Data retrieved:", JSON.parse(xhr.responseText)); } else { console.error("Failed to fetch data. Status:", xhr.status); } }; xhr.onerror = function () { console.error("Request failed due to a network error."); }; xhr.send();
5.使用 POST 请求发送数据
XHR 允许使用 POST 向服务器发送数据。
示例:
const xhr = new XMLHttpRequest(); xhr.open("POST", "https://jsonplaceholder.typicode.com/posts", true); xhr.setRequestHeader("Content-Type", "application/json"); xhr.onload = function () { if (xhr.status === 201) { console.log("Data saved:", JSON.parse(xhr.responseText)); } else { console.error("Error:", xhr.status); } }; const data = JSON.stringify({ title: "foo", body: "bar", userId: 1 }); xhr.send(data);
6. XHR 的属性和方法
关键属性:
-
readyState:代表请求的状态(0到4)。
- 0:未发送
- 1:打开
- 2:标头_已接收
- 3:加载中
- 4:完成
status:HTTP 状态代码(例如,200 表示成功,404 表示未找到)。
responseText:响应正文作为文本字符串。
responseXML:XML 数据形式的响应正文(如果适用)。
关键方法:
- open(method, url, async):初始化请求。
- send(data):将请求发送到服务器。
- setRequestHeader(header, value):设置自定义标头。
- abort():取消请求。
7.处理响应状态
您可以使用 onreadystatechange 事件来监控 XHR 请求的进度。
示例:
const xhr = new XMLHttpRequest();
8.使用 XHR 的优点
- 异步通信:避免阻塞主线程。
- 跨浏览器支持:适用于现代和旧版浏览器。
- 灵活的数据格式: 支持 JSON、XML、HTML 和纯文本。
9. XHR 的局限性
- 详细语法: 与 fetch 等现代 API 相比,需要更多代码。
- 回调地狱:复杂的请求可能会导致深度嵌套的回调。
- 有限的现代功能:缺乏 Promises 或 async/await 等功能。
10。现代替代方案:获取 API
虽然 XHR 仍然受到广泛支持,但 Fetch API 提供了一种现代的、基于承诺的方法来发出 HTTP 请求。
获取示例:
const xhr = new XMLHttpRequest();
11。结论
XMLHttpRequest 是一种可靠且得到良好支持的 AJAX 调用工具,但现代 API(如 fetch 或库(如 Axios))通常因其简单性和增强功能而受到青睐。然而,理解 XHR 对于维护遗留代码和更深入地了解异步通信在 JavaScript 中的工作原理至关重要。
嗨,我是 Abhay Singh Kathayat!
我是一名全栈开发人员,拥有前端和后端技术方面的专业知识。我使用各种编程语言和框架来构建高效、可扩展且用户友好的应用程序。
请随时通过我的商务电子邮件与我联系:kaashshorts28@gmail.com。
以上是掌握 XMLHttpRequest:JavaScript 中 AJAX 调用指南的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。
