如何创建自己的 Ajax 功能?


Ajax(异步 JavaScript 和 XML)请求是使用 JavaScript 发出的 HTTP 请求,通常使用 XMLHttpRequest 对象,用于与服务器交换数据并更新网页的特定部分,而无需刷新整个页面。创建自己的 Ajax 功能有两种方法。您可以使用 JSONPlaceholder API 或您自己的文件。在本教程中,我们将详细讨论这两种方法。

使用 JSONPlaceholder API

JSONPlaceholder 是一个免费的在线 REST API,您可以使用它来测试和练习您的开发技能。

语法

用户可以按照以下语法使用 JavaScript 的“XMLHttpRequest”对象创建 Ajax 请求。

let xhr = new XMLHttpRequest();
xhr.open("HTTP_METHOD" , "API_URL" , true); 

//HTTP_METHOD can be "GET" , "POST" , "PUT", etc.
xhr.onload = function(){
   if(xhr.status === 200) {
      
      //handle the response
   } else {
      
      //show xhr.status
   }
};
xhr.send();

这将创建一个新的 XMLHttpRequest 对象,使用指定的 HTTP_METHOD 打开到指定的 API_URL 的连接,并发送请求。onload 函数将在请求完成后被调用,而 xhr.status 属性将包含响应的 HTTP 状态代码。您可以在 onload 函数中处理响应数据,并相应地更新您的 HTML、JavaScript 或 JSON。

请记住,您需要提供您的 API_URL,并检查 API 文档以了解要使用的正确 HTTP_METHOD 和参数。

步骤

按照以下步骤使用 JSONPlaceholder API 创建自己的 Ajax 功能:

步骤 1 - 在 HTML 页面上创建一个按钮元素,并使用 onclick 事件调用 getUsers() 函数。

步骤 2 - 在 HTML 页面上创建一个具有 id 属性“user-list”的无序列表元素和一个具有 id 属性“error”的 div 元素。

步骤 3.1 - 创建一个新的 XMLHttpRequest 对象并将其分配给名为“xhr”的变量。

步骤 3.2 - 使用 xhr 对象向指定的 API URL 发出新的 GET 请求,并将请求设置为异步。

步骤 4.1 - 将 xhr 对象的“onload”函数设置为在请求完成后调用。

步骤 4.2 - 在“onload”函数中,检查 xhr 对象的“xhr.status”属性。

步骤 4.3 - 如果状态代码为 200 -

  • 解析 xhr 对象的 responseText 并将结果对象分配给变量“users”。

  • 将 id 为“user-list”的元素分配给变量“list”。

  • 创建一个 for 循环,迭代“users”对象的长度。

  • 在 for 循环中,创建一个新的列表项元素,将其 innerHTML 设置为当前用户的 name 属性,并将其追加到“list”元素。

步骤 4.4 - 如果状态代码不是 200,则使用状态代码更新错误 div。

步骤 5 - 将请求发送到服务器。

示例

以下是如何使用 JavaScript 和 JSONPlaceholder API 创建自己的 Ajax 功能的示例,JSONPlaceholder API 是一个免费的开源 API,用于测试和原型设计。

此示例显示了一个简单的 HTML 页面,该页面从 API 中检索用户列表并在列表中显示其姓名。

<html>
<body>
   <h3>User List</h3>
   <button onclick = "getUsers()"> Get Users </button> 
   <ul id = "user-list"></ul>
   <div id = "error" > </div>
   <script>
      function getUsers() {
         let xhr = new XMLHttpRequest();
         xhr.open("GET", "https://jsonplaceholder.typicode.com/users", true);
         xhr.onload = function() {
            if (xhr.status === 200) {
               let users = JSON.parse(xhr.responseText);
               let list = document.getElementById("user-list");
               list.innerHTML = "";
               for (let i = 0; i < users.length; i++) {
                  let li = document.createElement("li");
                  li.innerHTML = users[i].name;
                  list.appendChild(li);
               }
            } else {
               let error = document.getElementById("error");
               error.innerHTML = "Error: " + xhr.status;
            }
         };
         xhr.send();
      }
   </script>
</body>
</html>

使用我们自己的文件

我们还可以使用自己的文件创建 Ajax 请求。我们需要提供文件路径而不是 API_URL。

语法

按照以下语法使用此方法创建 Ajax 请求。

let xhr = new XMLHttpRequest();
xhr.open("HTTP_METHOD" , "FILE_PATH" , true);

FILE PATH 是您要请求的文件或资源的 URL。这可以是网页、图像、JSON 文件、文本文件等。“true”表示请求是异步的,并且脚本将在处理请求时继续执行。

步骤

按照以下步骤使用我们自己的文件创建自己的 Ajax 功能:

步骤 1 - 创建 XMLHttpRequest 对象的实例。

步骤 2 - 向“example.txt”发出 GET 请求(如果文件位于子目录中,您可以指定目录和文件名)。

步骤 3 - 添加 onload 事件监听器;在 onload 事件中,检查请求状态。

步骤 3.1 - 如果状态为 200,则读取文件内容并将其设置为变量'fileContent'。获取 id 为'file-content'的元素并将该元素的 innerHTML 设置为 fileContent。

步骤 3.2 - 如果状态不是 200,则获取 id 为'error'的元素并将该元素的 innerHTML 设置为包含状态代码的错误消息。

步骤 4 - 将请求发送到服务器。

示例

“example.txt”是一个包含消息“您正在阅读示例文本文件”的文本文件。您可以用文本文件的实际名称替换“example.txt”,并确保文本文件与 HTML 文件位于同一目录中,或者使用目录提供您的文件名。

以下是如何使用 Ajax 请求读取文本文件并在网页上显示其内容的示例。

<html>
<body>
   <h3>Text File Reader</h3>
   <button onclick = "readTextFile()"> Read Text File </button>
   <div id = "file-content" ></div>
   <div id = "error" > </div>
   <script>
      function readTextFile() {
         let xhr = new XMLHttpRequest();
         xhr.open("GET" , "/about/topics_list.txt" , true);
         xhr.onload = function() {
            if (xhr.status === 200) {
               let fileContent = xhr.responseText;
               let contentDiv = document.getElementById("filecontent");
               contentDiv.innerHTML = fileContent;
            }
            else {
               let error = document.getElementById("error"); 
               error.innerHTML = "Error: " + xhr.status;
            }
         };
         xhr.send();
      }
   </script>
</body>
</html>

请注意,状态代码 200 是成功 HTTP 请求的标准响应。它表示服务器已接收、理解并接受请求。

请注意,此代码仅在文本文件与 HTML 文件位于同一域中时才有效;如果您尝试从另一个域访问文件,则会收到 CORS 错误。

我们已经学习了如何使用 JSONPlaceholder API 使用 JavaScript 的 XMLHttpRequest 对象创建 Ajax 请求,以及如何使用我们自己的文件创建 Ajax 请求。

更新于: 2023年2月28日

260 次浏览

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.