如何创建自己的Ajax功能

如何创建自己的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对象打开一个新的GET请求,指定API URL,并设置请求为异步。

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

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

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

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

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

  • 创建一个循环,循环的次数为”users”对象的长度。

  • 在循环中,创建一个新的列表项元素,设置其innerHTML为当前用户的名称属性,并将其附加到”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);

文件路径是要请求的文件或资源的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来创建一个Ajax请求,使用JavaScript的XMLHttpRequest对象,并使用我们自己的文件来创建一个Ajax请求。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程