使用 JavaScript 发送 HTTP 请求:从 XMLHttpRequest 到 Fetch API

在现代 Web 开发中,使用 JavaScript 发送 HTTP 请求是与服务器交互和构建动态应用的关键技能。本教程将带你了解两种常用的发送 HTTP 请求的方法:XMLHttpRequest 对象和 fetch 函数。

1. 使用 XMLHttpRequest 对象

XMLHttpRequest 对象是浏览器内置的用于发送 HTTP 请求的传统方法。

**代码示例:**javascriptvar xhr = new XMLHttpRequest();xhr.open('GET', 'https://api.example.com/data', true);xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { var response = xhr.responseText; console.log(response); }};xhr.send();

解释:

  1. 创建一个 XMLHttpRequest 对象实例。2. 使用 open() 方法初始化请求,指定请求方法 ('GET'、'POST' 等)、目标 URL 和是否异步 (true 为异步)。3. 设置 onreadystatechange 事件处理程序,该程序在请求状态发生变化时触发。4. 在事件处理程序中,检查 readyState 属性是否为 4 (请求完成) 以及 status 属性是否为 200 (请求成功)。5. 如果请求成功,从 responseText 属性获取响应数据。6. 使用 send() 方法发送请求。

2. 使用 Fetch API

fetch 函数是更现代的发送 HTTP 请求的 API,它返回一个 Promise 对象,使代码更易于阅读和维护。

**代码示例:**javascriptfetch('https://api.example.com/data') .then(function(response) { return response.text(); // 可以根据响应类型使用其他方法,例如 json() }) .then(function(data) { console.log(data); }) .catch(function(error) { console.log(error); });

解释:

  1. 使用 fetch() 函数发起请求,传入目标 URL。2. fetch() 函数返回一个 Promise 对象,可以使用 .then() 方法链式处理响应。3. 第一个 .then() 方法接收 Response 对象,并使用 .text() 方法将其转换为文本格式 (也可以使用 .json() 等方法)。4. 第二个 .then() 方法接收解析后的响应数据。5. .catch() 方法用于捕获请求过程中出现的任何错误。

总结

XMLHttpRequestfetch 都可以用于发送 HTTP 请求,但 fetch API 更简洁易用,并且更适合现代 JavaScript 开发。选择哪种方法取决于你的项目需求和个人偏好。

JavaScript 发送 HTTP 请求 - XMLHttpRequest 和 Fetch API 教程

原文地址: https://www.cveoy.top/t/topic/bhf8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录