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

yizhihongxing

实现 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日

相关文章

  • Vue前端路由hash与history差异深入了解

    Vue前端路由hash与history差异深入了解 前言 随着前端技术的发展,单页面应用(SPA)越来越多地出现在我们的生活中,而Vue作为目前较为流行的前端框架,其前端路由功能也越来越重要。本文将详细讲解Vue前端路由中hash与history两种模式的差异,以及它们的使用注意事项。 hash模式 在vue-router中,默认使用的是hash模式。has…

    JavaScript 2023年6月11日
    00
  • Javascript核心读书有感之语言核心

    请允许我对Javascript核心读书有感之语言核心进行详细讲解。在这份攻略中,我将为大家介绍Javascript语言核心的主要知识点,帮助读者更好的掌握该语言。 为什么要学习Javascript语言核心? Javascript是一种非常流行的脚本语言,广泛应用于Web开发、移动端开发和桌面应用程序开发等领域。对于想要从事前端开发、全栈开发、移动端开发等方向…

    JavaScript 2023年6月10日
    00
  • js中的鼠标事件有哪些(用法示例学习进阶)

    JS中的鼠标事件是指在浏览器中用户和鼠标交互时,所触发的事件。在前端开发中,这些鼠标事件被广泛应用于各种网站和应用程序中。下面将介绍一些常用的鼠标事件以及它们的用法示例。 鼠标单击事件(click) 鼠标单击事件(click)是指在鼠标左键单击时所触发的事件。在页面中使用最为广泛的是按钮的单击事件。下面是一个示例,当按钮被单击时,将弹出一个提示框。 <…

    JavaScript 2023年6月11日
    00
  • ECMAScript中函数function类型

    ECMAScript中函数(Function)类型是一种特殊的对象,函数作为对象拥有一些特殊的属性和方法,比如call、apply、length、prototype等。 定义函数 定义函数有两种常见的方式: 函数声明 函数声明使用function关键字,后跟函数名和一对圆括号。函数体被包含在一对花括号内。例如: function sum(num1, num2…

    JavaScript 2023年5月27日
    00
  • Javascript将图片的绝对路径转换为base64编码的方法

    将图片的绝对路径转换为base64编码的方法可以使用Javascript的Canvas对象来实现。具体过程如下: 步骤 1:创建一个Image对象 首先,我们需要创建一个Image对象,将想要转换成base64编码的图片作为其src属性的值。 const image = new Image(); image.src = ‘https://example.co…

    JavaScript 2023年5月19日
    00
  • 详解JavaScript中常用操作符的使用

    详解JavaScript中常用操作符的使用 前言 JavaScript中操作符是用来执行各种计算操作的符号,不同的操作符有不同的用途和优先级。在编写JavaScript程序时,我们需要了解各种操作符的使用方法和规则。本文将详细介绍JavaScript中常用操作符的使用。 算术操作符 算术操作符是用于执行基本的算术计算,如加减乘除等操作。下面是常用的算术操作符…

    JavaScript 2023年5月27日
    00
  • localStorage设置有效期和过期时间的简单方法

    下面是详细讲解 “localStorage设置有效期和过期时间的简单方法” 的完整攻略: 什么是localStorage? localStorage 是一种在浏览器中存储数据的方式,可以用于在不同页面和不同会话之间共享数据。localStorage 中存储的数据可以长期保存,即使浏览器关闭了也不会丢失。 设置localStorage的有效期 localSto…

    JavaScript 2023年6月10日
    00
  • 什么是cookie?js手动创建和存储cookie

    关于”什么是cookie”的讲解: Cookie指的是一种服务器发送给浏览器的小型文本文件,在浏览器端保存用户的登录状态、购物车信息等。在下次用户访问同样的网站时,浏览器会将存在本地的Cookie信息发送给服务器,服务器根据接收到的Cookie信息来进行相应的处理。 Cookie有以下特点:- Cookie由服务器生成,浏览器存储。- 每次请求时需要将Coo…

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