【JavaScript】发送HTTP请求

文章目录

    • 1. 使用XMLHttpRequest对象
      • 发送GET请求
      • 发送POST请求
    • 2. 使用Fetch API
      • 发送GET请求
      • 发送POST请求
    • 3. 使用Axios库
      • 发送GET请求
      • 发送POST请求
    • 4. 总结

在 Web 开发中, 与服务器进行数据交互是常见的操作,而发送 HTTP 请求是实现这一目标的核心。本篇博客将介绍 JavaScript 中发送 HTTP 请求的几种常见方式,包括使用 XMLHttpRequest 对象、Fetch API 以及 Axios 库。

1. 使用XMLHttpRequest对象

发送GET请求

let xhr = new XMLHttpRequest();
xhr.open("GET", "https://api.example.com/data", true);
xhr.onreadystatechange = function() {if (xhr.readyState === 4 && xhr.status === 200) {console.log("Response:", xhr.responseText);}
};
xhr.send();

在上述例子中,通过创建 XMLHttpRequest 对象,使用 open 方法配置请求方法、URL 和是否异步。然后通过 onreadystatechange 监听状态变化,当状态为 4(表示完成)且状态码为 200 时,表示请求成功,可以获取响应数据。

发送POST请求

let xhr = new XMLHttpRequest();
xhr.open("POST", "https://api.example.com/post", true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function() {if (xhr.readyState === 4 && xhr.status === 200) {console.log("Response:", xhr.responseText);}
};
let postData = { key: "value" };
xhr.send(JSON.stringify(postData));

在上述例子中,通过将请求方法改为 POST,并使用 setRequestHeader 设置请求头,然后通过 send 方法发送 JSON 格式的数据。

2. 使用Fetch API

发送GET请求

fetch("https://api.example.com/data").then(response => {if (!response.ok) {throw new Error("Network response was not ok");}return response.json();}).then(data => {console.log("Data:", data);}).catch(error => {console.error("Fetch error:", error);});

在上述例子中,使用 fetch 函数发起 GET 请求,通过 .then() 方法处理响应,并使用 .catch() 方法捕获错误。

发送POST请求

fetch("https://api.example.com/post", {method: "POST",headers: {"Content-Type": "application/json"},body: JSON.stringify({ key: "value" })
}).then(response => {if (!response.ok) {throw new Error("Network response was not ok");}return response.json();}).then(data => {console.log("Data:", data);}).catch(error => {console.error("Fetch error:", error);});

在上述例子中,使用 fetch 函数发起 POST 请求,通过配置 methodheadersbody 选项来发送 JSON 格式的数据。

3. 使用Axios库

Axios 是一个基于 Promise 的 HTTP 客户端,可以在浏览器和 Node.js 中使用。

发送GET请求

axios.get("https://api.example.com/data").then(response => {console.log("Data:", response.data);}).catch(error => {console.error("Axios error:", error);});

发送POST请求

axios.post("https://api.example.com/post", { key: "value" }).then(response => {console.log("Data:", response.data);}).catch(error => {console.error("Axios error:", error);});

在使用 Axios 时,可以直接调用相应的 HTTP 方法,并使用 .then().catch() 处理响应和错误。

4. 总结

在 JavaScript 中,发送 HTTP 请求的方式有多种,选择适合自己项目需求的方式是很重要的。XMLHttpRequest 提供了基本的功能,Fetch API 提供了更现代的 API,而 Axios 则是一个流行的第三方库,提供了更多便捷的特性。根据项目的需求和个人偏好选择适合的方式进行 HTTP 请求。希望通过本篇博客,你对 JavaScript 中发送 HTTP 请求的几种方式有了更深入的了解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/682756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

15.3 OpenGL可编程片段处理:片段着色器查询

片段着色器查询 Fragment Shader Queries 片段着色器查询使用查询对象来跟踪片段着色器调用的数量。 当调用BeginQuery时,目标设为FRAGMENT_SHADER_INVOCATIONS时,GL维护的片段着色器调用计数器被设置为零。当片段着色器调用查询处于活动状态时&#x…

Java奇缘:林浩然与杨凌芸的数学冒险记

Java奇缘:林浩然与杨凌芸的数学冒险记 Java Adventure: The Mathematical Odyssey of Lin Haoran and Yang Lingyun 在Java编程世界的某一个角落,住着两位才华横溢的程序员——林浩然和杨凌芸。林浩然,人称“算法大侠”,对Java Ma…

【Vue】工程化开发脚手架Vue CLI

📝个人主页:五敷有你 🔥系列专栏:Vue⛺️稳重求进,晒太阳 工程化开发&脚手架Vue CLI 基本介绍 Vue Cli是Vue官方提供的一个全局命令工具 可以帮助我们快速创建一个开发Vue项目的标准化基础架子【集成了we…

rtt设备io框架面向对象学习-输入捕捉设备

目录 1.输入捕捉设备基类2.输入捕捉设备基类的子类3.初始化/构造流程3.1设备驱动层3.2 设备驱动框架层3.3 设备io管理层 4.总结5.使用 1.输入捕捉设备基类 此层处于设备驱动框架层。也是抽象类。 在/ components / drivers / include / drivers 下的rt_inputcapture.h定义了如…

express 定时删除 oss 垃圾图片

一: 删除垃圾图片 思路: 获取 oss 中存储的所有图片文件;获取数据库中存储的图片文件数据;对比差异,不在数据库中的 oss 图片文件即为要删除的垃圾图片。 实现: 1、获取所有 oss 文件 import OSS from…

信息学奥赛一本通1311:【例2.5】求逆序对

1311&#xff1a;【例2.5】求逆序对 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 61497 通过数: 14704 【题目描述】 给定一个序列a1,a2,…,an&#xfffd;1,&#xfffd;2,…,&#xfffd;&#xfffd;&#xff0c;如果存在i<j&#xfffd;<&#xfffd…

[前端开发] JavaScript基础知识 [上]

下篇&#xff1a;JavaScript基础知识 [下] JavaScript基础知识 [上] 引言语句、标识符和变量JavaScript引入注释与输出数据类型运算符条件语句与循环语句 引言 JavaScript是一种广泛应用于网页开发的脚本语言&#xff0c;具有重要的前端开发和部分后端开发的应用。通过JavaSc…

Pr教程1-8节笔记

第一课 认识PR以及PR的学习方法 学习任务&#xff1a; 1、熟练掌握PR软件&#xff0c;同时掌握剪辑技术以及常用于制作特效的效果器。 2、认识PR软件的名称、主要功能以及用途作用。 3、明白学习PR我们能做些什么以及PR的学习方法。 知识内容&#xff1a; 1、PR是专门用于视…

微服务—ES数据同步

目录 数据同步 问题分析 方案1. 同步调用 方案2. 异步通知 方案3. 监听binlog​编辑 各方案对比 案例——利用MQ实现数据同步 步骤1. 导入hotel-admin项目 步骤2. 声明交换机、队列 步骤3. 发送MQ消息 步骤4. 接收MQ消息 步骤5. 测试同步功能 数据同步 elasticsea…

C#,计算几何,贝塞耳插值(Bessel‘s interpolation)的算法与源代码

Friedrich Wilhelm Bessel 1 贝塞耳插值&#xff08;Bessels interpolation&#xff09; 首先要区别于另外一个读音接近的插值算法&#xff1a;贝塞尔插值&#xff08;Bzier&#xff09;。 &#xff08;1&#xff09;读音接近&#xff0c;但不是一个人&#xff1b; &#x…

手动配置动态代理JDK

在Java中&#xff0c;动态代理可以通过实现java.lang.reflect.InvocationHandler接口来创建。下面是一个简单的示例&#xff0c;演示如何使用JDK动态代理&#xff1a; 首先&#xff0c;定义一个接口&#xff0c;代理类将实现这个接口的方法&#xff1a; public interface MyI…

【zabbix】(三)-邮件告警配置

企业微信、钉钉和邮件告警配置的目的是为了确保监控系统检测到的问题能够及时传达给相关人员&#xff0c;并通过灵活的通知方式提高团队的响应速度和协作效率。 本文介绍的是QQ邮件告警 一 开启发件服务器SMTP功能 本文使用的是QQ邮箱&#xff0c;其他邮箱操作类似&#xff…

【Pygame手册01/20】最简应用:窗口

目录 一、说明 二、pygame是什么&#xff1f; 2.1 为游戏开发设计 2.2 版本发展史 2.3 特点 三、pygame安装要点 四、入门知识 4.1 初始使用 4.2 要更改 pygame 窗口的外观 4.3 完整窗口程序 4.4 窗口对象接口示例 五、隐形窗口和显性窗口 六、结论 一、说明 为什…

MySQL-----函数篇

目录 ▶ 字符串函数 ▶ 数值函数 ▶ 日期函数 ▶ 流程函数 ▶ 简介 函数是指一段可以直接被另一段程序调用的程序或代码。 ▶ 字符串函数 函数描述实例ASCII(s)返回字符串 s 的第一个字符的 ASCII 码。 返回 CustomerName 字段第一个字母的 ASCII 码&#xff1a; S…

电路设计(18)——9路抢答器的设计与制作

1.设计要求 设计、制作一台9路抢答器&#xff0c;抢答器应符合如下工作过程&#xff1a; 每次抢答前&#xff0c;主持人首先按下复位键&#xff0c;将抢答器上“抢答号”数显复位&#xff0c;显示为“0”。接着&#xff0c;主持人念答题内容&#xff0c;念毕即叫“抢答…

智能与数学的边界

智能和数学之间的边界是一个复杂的问题&#xff0c;许多学者都对此进行了广泛的研究和探讨。以下是一些关于智能和数学之间边界的观点&#xff1a; 1、数学是智能的基础之一 数学是人类智力的一个基本组成部分&#xff0c;它提供了一种精确和逻辑的思考方式&#xff0c;有助于人…

炫酷3D按钮

一.预览 该样式有一种3D变换的高级感&#xff0c;大家可以合理利用这些样式到自己的按钮上 二.代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice…

Java网络编程 双向通信

目录 网络编程实例创建客户端创建服务端测试 网络编程 Java的网络编程是Java编程语言中用于实现网络通信的一组API和工具。通过Java的网络编程&#xff0c;开发人员可以在Java应用程序中实现客户端和服务器之间的通信&#xff0c;从而构建各种网络应用。 以下是Java网络编程的…

步步深入 k8s 使用 pv pvc sc 在 nfs 基础上共享存储

博客原文 文章目录 前言集群环境nfs 环境搭建pod 挂载 nfs架构图 pvc 方式挂载 nfs架构图 storageclass 方式动态申请 pv架构图 参考 前言 持久化卷&#xff08;Persistent Volume, PV&#xff09;允许用户将外部存储映射到集群&#xff0c;而持久化卷申请&#xff08;Persist…

Python专家指南:全面揭示文件操作的核心机制与实战技巧

在计算机科学领域&#xff0c;文件操作始终占据着至关重要的地位。无论是在日常的数据处理、配置文件管理、大规模数据分析&#xff0c;还是在复杂软件开发、网络通信及分布式存储解决方案中&#xff0c;对文件的操作能力都是程序员必备的基本功。Python语言以其简洁明快的设计…