在 Javascript 中发出 HTTP 请求的方法

在 Javascript 中发出 HTTP 请求的方法

了解如何向端点发出 HTTP 请求并能够发送、检索或获取数据非常重要。 Javascript 有多种方式和方法向各种服务器端点和数据库发出 HTTP 请求。
在本文中,我们将讨论用 Javascript 语言发出 HTTP 请求的各种方法

1) XMLHttpRequest

XMLHttpRequest 是 Javascript 中的一个内置对象,用于从 Web 服务器发出 HTTP 请求。这是在 ES6 之前用 Javascript 语言发出 HTTP 请求的唯一方式和方法。我们可以使用 HTTP GET 方法接收和获取数据,我们可以使用 HTTP POST 方法发送数据

在此示例中,我们将使用 JSON Placeholder API,这是一个免费的 API,供开发人员进行测试
步骤1
我们创建一个新的实例 XMLHttpRequest() 目的

 //创建一个新的 XMLHttpRequestObject 实例 常量请求 = 新 XMLHttpRequest();

第2步
我们继续从服务器端点创建一个新的 HTTP 请求

 //创建一个新的XMLHttpRequest对象实例  
 常量请求 = 新 XMLHttpRequest();  
 //打开请求  
 request.open('GET', 'https://jsonplaceholder.typicode.com/todos/1');  
 //发送请求  
 请求.发送();

然后我们使用 打开() 方法有两个参数,第一个参数是 HTTP 类型/请求方法,在这种情况下,它是我们正在执行的 GET 请

而第二个参数是我们要从中获取数据的服务器端点。然后我们使用 发送() 方法

第 3 步

我们必须跟踪请求的进度才能知道请求是否成功,所以我们在请求中添加一个事件监听器来监听 就绪状态改变 当 XMLHttpRequest 的 readyState 属性改变时执行的事件
readyState 值为 4 表示请求完成,状态为 200 表示请求成功

 //创建一个新的XMLHttpRequest对象实例  
 常量请求 = 新 XMLHttpRequest();  
 //打开请求  
 request.open('GET', 'https://jsonplaceholder.typicode.com/todos/1');  
 //发送请求  
 请求.发送(); request.addEventListener('readystatechange', ()=>{  
 如果(request.readyState == 4 && request.status == 200){  
 console.log(request.responseText);  
 } 别的{  
 console.log('获取数据出错');  
 }  
 })

所以,我们表演和 如果() 检查 readyState 是否等于 4 以及状态是否为 200 的语句,这意味着我们的请求是成功的,所以我们 console.log() request.responsetext 这是从我们制作我们的服务器端点接收到的文本(数据)请求,如果请求成功,还会在控制台中记录错误消息。在此示例中,我们的端点是 JSON 占位符 API。
在我们的控制台中,您会看到类似这样的内容。

 {  
 “用户ID”:1,  
 “身份证”:1,  
 “标题”:“选择或  
 “完成”:假  
 }

我们终于成功地使用 XMLHttpRequest 从 JSON 占位符 API 获得了一个假 id

2) 使用 Fetch API

Fetch API 帮助我们以与 XMLHttpRequest 类似的方式发出 HTTP 请求,但 Fetch 使用 Promise API。当我们使用 fetch API 发出请求时,它返回一个本质上是异步的 Promise。
Fetch API 有一个强制参数,即服务器端 URL

 //获取API  
 fetch('https://jsonplaceholder.typicode.com/todos/1') //获取API  
 fetch('https://jsonplaceholder.typicode.com/todos/1').then((response) =>{  
 // 它返回一个承诺  
 返回响应.json();  
 }).then((响应) =>{  
 控制台日志(响应);  
 }).catch((错误)=>{  
 控制台日志(错误);  
 })

我们坚持 然后() 方法来获取返回我们的请求响应的 API,然后我们将响应记录到控制台。 。抓住() 如果我们的 HTTP 请求中有错误,该方法可以帮助我们捕获请求中的错误。
在我们的浏览器控制台中,我们得到一个对象的输出:

 {userId:1,id:1,title:'选择与否',完成:false}

3) 轴心

Axois 是一个用于向各种端点发出 HTTP 请求的库。Axios 是一种基于 Promise 的发出 HTTP 请求的方法。 axios 的一个独特功能是它返回已经解析的 JSON 数据。Axios 在后台使用了 XMLHttpRequest 方法。
安装 Axios
我们可以通过安装 axios 来使用它,还有其他安装 axios 的方法,但我们将在本文中使用 CDN

 //使用CDN  
 <script src="https://unpkg.com/axios/dist/axios.min.js"></script>

我们将这个 Script 标签放在 HTML 文件的 Head Section

 <!DOCTYPE html>  
 <html lang="en">  
 <head>  
 <meta charset="UTF-8">  
 <meta http-equiv="X-UA-Compatible" content="IE=edge">  
 <meta name="viewport" content="width=device-width, initial-scale=1.0">  
 <title>使用 javascript 发出 HTTP 请求的方法</title>  
 <link rel="stylesheet" href="style.css">  
 <script src="https://unpkg.com/axios/dist/axios.min.js"></script>  
 </head>

现在我们可以继续使用 axios 发出 HTTP 请求了

 //axios  
 axios.get('https://jsonplaceholder.typicode.com/todos/1').then((data)=>{  
 控制台.log(数据);  
 }).catch((错误)=>{  
 控制台日志(错误);  
 })

我们通过在 axios 上调用 get 方法来发出一个 GET 请求,该方法带有我们想要发送请求以从其获取数据的 URL。它返回一个承诺
在浏览器控制台中,我们有一个包含我们数据的对象:

 {数据:{...},状态:200,statusText:'',标题:{...},配置:{...},...}
  1. 使用 jQuery

jQuery 有几种方法来发出 HTTP 请求但是为了本教程的缘故,我们将使用 $.ajax() 方法 。
$.ajax() 方法用于向特定 URL 或 Endpoint 发出异步 HTTP 请求。
为了能够利用 $.ajax() 您将其库源文件包含在 html 页面的 head 部分中

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <!DOCTYPE html>  
 <html lang="en">  
 <head>  
 <meta charset="UTF-8">  
 <meta http-equiv="X-UA-Compatible" content="IE=edge">  
 <meta name="viewport" content="width=device-width, initial-scale=1.0">  
 <title>使用 javascript 发出 HTTP 请求的方法</title>  
 <link rel="stylesheet" href="style.css">  
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>  
 </head>

下面是 $.ajax() 的语法

 $.ajax({  
 网址:网址,  
 类型:类型,  
 成功:成功,  
 错误:错误  
 });

网址: 它是我们希望使用 ajax 发出请求的 URL / 端点。

类型: 它定义了请求中 HTTP 方法的类型

成功: 如果请求成功,它是根据请求的响应触发的回调函数

错误: 如果请求中有错误,它是根据请求的响应触发的回调函数

 $.ajax({  
 url: 'https://jsonplaceholder.typicode.com/todos/1',  
 类型:'GET',  
 成功:(res)=>{  
 控制台.log(res);  
 },  
 错误:(错误)=>{  
 控制台日志(错误);  
 },  
 });

在浏览器控制台中,您会收到如下所示的请求响应:

 {userId:1,id:1,title:'选择与否',完成:false}

结论

我们已经学习了各种在 javascript 中发出 HTTP 请求的方法。您可以使用各种方法中的任何一种在您的项目中提出请求。快乐编码!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/33124/24201308

posted @ 2022-09-13 08:25  哈哈哈来了啊啊啊  阅读(2303)  评论(0编辑  收藏  举报