原生JS简单实现ajax的方法示例

实现 AJAX 的方法有很多种,其中最基础的一种方法是使用原生的 JavaScript(简称原生 JS)来实现。下面详细讲解如何简单实现 AJAX。

使用 XMLHttpRequest 对象发送 AJAX 请求

使用 XMLHttpRequest 对象发送请求是使用原生 JS 实现 AJAX 的最基础的一种方法。步骤如下:

  1. 创建 XMLHttpRequest 对象
let xhr = null;
if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
} else if (window.ActiveXObject) {
    // 兼容IE6及以下版本
    xhr = new ActiveXObject('Microsoft.XMLHTTP');
} else {
    alert('您的浏览器不支持XMLHttpRequest对象!');
    return;
}
  1. 打开一个链接
xhr.open('GET', 'http://example.com/api/getData', true);

其中,第一个参数表示 HTTP 请求方法,如 GET、POST 等;第二个参数表示请求的 URL;第三个参数表示是否异步。

  1. 发送请求
xhr.send();
  1. 监听请求状态
xhr.onreadystatechange = function() {
    if (xhr.readyState === 4) {
        if (xhr.status === 200) {
            // 请求成功
            console.log(xhr.responseText);
        } else {
            // 请求失败
            console.error(xhr.status, xhr.statusText);
        }
    }
};

其中,readyState 表示 XMLHttpRequest 的状态,一共有五个取值,分别为:

  • 0:未初始化,尚未调用 open() 方法;
  • 1:已打开,已调用 open() 方法,但尚未调用 send() 方法;
  • 2:已发送,已调用 send() 方法,但尚未收到响应;
  • 3:接收中,正在接收响应数据;
  • 4:已完成,已接收到完整的响应数据。

status 表示 HTTP 响应状态码,2xx 表示请求成功,3xx 表示重定向,4xx 表示客户端请求错误,5xx 表示服务器错误。

使用 Fetch API 发送 AJAX 请求

使用 Fetch API 发送 AJAX 请求是一种相对较新的方法,它是基于 Promise 的,相比 XMLHttpRequest 对象更简单易用。示例如下:

fetch('http://example.com/api/getData')
    .then(response => {
        if (response.ok) {
            return response.json();
        } else {
            throw new Error('请求失败');
        }
    })
    .then(data => {
        console.log(data);
    })
    .catch(error => {
        console.error(error);
    });

其中,fetch() 方法返回一个 Promise 对象,then() 方法用来处理成功的回调函数,catch() 方法用来处理失败的回调函数。如果 HTTP 响应状态码为 2xx,则将响应对象转成 JSON 格式的数据;否则抛出错误。最终在控制台输出 JSON 格式的数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:原生JS简单实现ajax的方法示例 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • JS调试必备的5个debug技巧

    JS调试必备的5个debug技巧 1. 使用Chrome DevTools中的Debugger进行代码调试 Chrome DevTools提供了一个强大的Debugger工具,可以让我们在代码运行时进行调试,具有断点续调、单步调试、条件断点等功能。 使用步骤: 打开Chrome浏览器,进入开发者模式(F12或Ctrl+Shift+I)。 在Sources面板…

    JavaScript 2023年5月27日
    00
  • 仅IE不支持setTimeout/setInterval函数的第三个以上参数

    首先需要明确,setTimeout和setInterval函数的第三个以上参数在所有现代浏览器和IE9以上版本均被支持。但是,在IE9及以下版本中,第三个以上参数并不会被当做函数的参数传递进去,而是被当做全局对象属性传递进去。 解决方法是在第三个以上参数中传入一个字符串类型的函数参数,在函数内通过eval方法执行即可。 以下是简单的示例说明: 传递一个字符串…

    JavaScript 2023年6月11日
    00
  • jQuery怎么解析Json字符串(Json格式/Json对象)

    当我们从前端请求数据时,服务端一般都会返回JSON格式的数据。为方便取出其中的关键数据,我们需要将其解析成JSON对象,并通过jQuery对其进行操作。 1. 解析JSON字符串 当我们接收到服务端返回的JSON格式的字符串时,需要使用JSON.parse()方法将其转换为JSON对象。示例如下: var jsonStr = ‘{"name&quo…

    JavaScript 2023年5月27日
    00
  • URL地址中的#符号使用说明

    当我们访问网页时,常常会注意到 URL 地址中包含 # 符号。这个 # 符号在 URL 中有什么作用呢?下面我将详细讲解 “URL地址中的#符号使用说明”,希望能对大家有所帮助。 什么是 URL? 首先让我们来了解一下 URL 是什么。URL(Uniform Resource Locator),中文称统一资源定位符,是互联网上每个文件以及其他资源的唯一地址。…

    JavaScript 2023年6月11日
    00
  • JavaScript的function函数详细介绍

    JavaScript的function函数详细介绍 在JavaScript中,function函数是一种非常重要的机制。本文将详细介绍function函数的用法,包括如何定义和调用函数,传递参数等。 定义和调用function函数 要定义一个function函数,可以使用function关键字后跟函数名(如果有的话)和一对括号,然后在大括号中编写函数体代码。…

    JavaScript 2023年5月18日
    00
  • javascript中parentNode,childNodes,children的应用详解

    Javascript中parentNode, childNodes, children的应用详解 在Javascript中,parentNode, childNodes和children都是DOM Node对象中的属性或方法,用于操作和访问HTML文档中的元素节点。 parentNode parentNode 是通过访问节点的父节点来获取该节点的方法。 在H…

    JavaScript 2023年6月10日
    00
  • gulp-htmlmin压缩html的gulp插件实例代码

    下面是“gulp-htmlmin压缩html的gulp插件实例代码”的完整攻略。 什么是gulp-htmlmin gulp-htmlmin 是一个用于压缩 HTML 文件的 Gulp 插件。 安装gulp-htmlmin 在使用 gulp-htmlmin 之前,需要先安装 Gulp 和 gulp-htmlmin,可以使用以下命令安装: npm install…

    JavaScript 2023年6月10日
    00
  • Dom 学习总结以及实例的使用介绍

    DOM 学习总结以及实例的使用介绍 DOM是什么? DOM(Document Object Model)即文档对象模型,是一种用于处理HTML或XML文档的标准编程接口。它将整个HTML或XML文档表示为一个树形结构,您可以使用DOM API来访问、操纵或更新各个部分。 DOM相关属性和方法 1. getElementById() 该方法返回一个具有指定 I…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部