原生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日

相关文章

  • 使用javascript做在线算法编程

    下面是“使用Javascript做在线算法编程”的完整攻略。 一、概述 在线算法编程指的是通过一个网站或平台提供的在线编程环境,使用一定编程语言完成特定算法题目,将编写的代码提交,经过编译测试后得到结果。Javascript作为一种常用的脚本语言,在线算法编程中也有广泛的应用。 二、步骤 1. 选择合适的在线算法平台 当前,市场上有不少针对在线算法编程的网站…

    JavaScript 2023年5月18日
    00
  • webpack文件打包错误异常

    下面是关于“webpack文件打包错误异常”的完整攻略: 异常说明 在使用webpack进行文件打包时,可能会出现各种错误和异常,这些错误和异常可能会导致文件打包失败或编译过程中的错误,如语法错误等。常见的错误和异常有以下几种: 模块依赖错误 语法错误 文件丢失 webpack配置错误 针对不同类型异常,我们需要不同的解决方案以及错误提示信息。 解决方案 模…

    JavaScript 2023年5月28日
    00
  • Bootstrap源码解读表单(2)

    关于“Bootstrap源码解读表单(2)”这篇文章,主要是对Bootstrap框架中的表单组件的源码分析和实现方法进行了详细讲解。下面是我对这篇文章的完整攻略: 简介 此文章是 Bootstrap 源码解读系列的第 2 篇,主要介绍如何自定义表单组件,以及其中用到的几个重要的 CSS 类。 自定义表单组件 Bootstrap 的表单组件样式是十分灵活的,可…

    JavaScript 2023年6月10日
    00
  • JavaScript常用截取字符串的三种方式用法区别实例解析

    JavaScript常用截取字符串的三种方式用法区别实例解析 JavaScript中常常需要对字符串进行截取,本篇文章将介绍JavaScript中常用的三种截取字符串的方式,包括 substr()、substring()、slice() 三种方法,同时详细阐述它们之间的区别和使用场景。 substr() 方法: string.substr(start,len…

    JavaScript 2023年5月28日
    00
  • JavaScript学习教程之cookie与webstorage

    JavaScript学习教程之cookie与webstorage 在前端开发中,我们常常需要在网站中存储一些信息,以便下次用户访问时直接使用,这就需要用到cookie和webstorage。本文将详细讲解cookie和webstorage的概念、用法、区别以及示例。 1. Cookie 什么是Cookie? Cookie是一种小型的文本文件,它可以在客户端存…

    JavaScript 2023年6月11日
    00
  • js对图片base64编码字符串进行解码并输出图像示例

    解码图片base64编码字符串并输出图像一般需要以下步骤: 从DOM中获取到base64编码图片字符串。 将base64编码图片字符串转换为Blob类型数据。 使用FileReader对象将Blob类型数据读取为图像对象的URL地址。 将URL地址赋值给img标签的src属性,以此输出图像。 下面我们来一步一步详细讲解这个过程,并提供两个示例。 示例1: 先…

    JavaScript 2023年5月19日
    00
  • JavaScript实现两个数组的交集

    请参考以下完整攻略: 问题描述 如何用JavaScript实现两个数组的交集? 解决方案 下面提供几种常见的解决方法。 方法一:双重循环法 最基本的方法就是使用双重循环,比较两个数组中的每个元素,找出相同的元素。这种方法优点在于思路简单,容易理解,缺点在于时间复杂度较高,当数组规模较大时性能很差。 const arr1 = [1, 3, 5, 7, 9]; …

    JavaScript 2023年5月27日
    00
  • jquery.cookie.js 操作cookie实现记住密码功能的实现代码

    想要实现记住密码功能需要首先使用jquery.cookie.js库来操作cookie,这个库可以在GitHub上下载到。 引入jquery.cookie.js 首先在head标签中引入jquery和jquery.cookie.js库。 <script src="https://cdn.staticfile.org/jquery/1.12.0/…

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