Axios 快速入门

news2024/11/24 11:08:24

什么是Ajax

        Ajax 是一种通过 JavaScript 发送异步请求的技术,它的核心是使用 XMLHttpRequest 对象来与服务器交换数据。这种方式较为繁琐,因为需要手动处理请求状态和响应,并且编写的代码往往比较冗长。

        相较之下,Axios 是一个基于 Promises 的 HTTP 客户端,简化了发送请求的过程,使得处理 HTTP 请求更加直观和便捷。Axios 封装了 XMLHttpRequest,并提供了一系列功能,例如请求和响应拦截、自动转换 JSON 数据等。

同步与异步 

在编程中,异步和同步是两种处理操作的方式:

  • 同步(Synchronous):在同步操作中,代码会按照顺序逐行执行,后面的代码必须等待前面的代码执行完成,这样会导致页面阻塞。

  • 异步(Asynchronous):异步操作允许代码在等待的同时继续执行其他任务。当任务完成后,会通过回调函数或 Promise 等机制处理结果。这种方式使得用户体验更加流畅,在进行网络请求时尤其重要。

        Axios 是一个专注于异步请求的库,通过使用 Promise,让开发者能够更容易地处理异步操作。例如,下面是使用 Axios 发送 GET 请求的代码:

axios.get('https://jsonplaceholder.typicode.com/todos/1')
    .then((result) => {
        console.log(result.data);
    })
    .catch((error) => {
        console.error(error);
    });

在这个例子中,通过 then() 和 catch() 方法,我们可以清晰地处理请求成功与失败的情况。 

Axios

通过Axios发送异步请求

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Axios入门</title>
    <script src="js/axios.js"></script>
</head>
<body>

    <input type="button" value="发送请求get" onclick="get()">
    <input type="button" value="发送请求post"onclick="post()">


    <script>
        //通过axios发送异步get请求
        function get() {
            axios({
                method: 'get',
                url: 'https://jsonplaceholder.typicode.com/todos/1'
            }).then((result) => {
                console.log(result.data);   
            })
        }

        //通过axios发送异步post请求
        function post() {
            axios({
                method: 'post',
                url: 'https://jsonplaceholder.typicode.com/todos',
            }).then((result) => {
                console.log(result.data);
            })
        }


    </script>
    
</body>
</html>

Axios发送异步请求

        Axios 提供了多种发送网络请求的方法,最常见的包括 GET 和 POST 请求。使用 Axios 可以非常简单地发送请求:

1. 发送 GET 请求

发送 GET 请求的方式非常简单,只需调用 axios.get() 方法。

function get() {
    axios.get('https://jsonplaceholder.typicode.com/todos/1')
        .then((result) => {
            console.log(result.data);
        })
        .catch((error) => {
            console.error(error);
        });
}

2. 发送 POST 请求

        发送 POST 请求时,通过 axios.post() 方法可以轻松实现。可以在方法中传递数据作为第二个参数

function post() {
    axios.post('https://jsonplaceholder.typicode.com/todos', {
        title: '新任务',
        completed: false
    })
    .then((result) => {
        console.log(result.data);
    })
    .catch((error) => {
        console.error(error);
    });
}

在这个例子中,我们发送了一个包含任务标题和状态的 POST 请求,并处理了响应。

比较推荐的是用箭头函数和回调函数这种写法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Axios入门</title>
    <script src="js/axios.js"></script>
</head>
<body>

    <input type="button" value="发送请求get" onclick="get()">
    <input type="button" value="发送请求post"onclick="post()">


    <script>
        //通过axios发送异步get请求
        function get() {
            /* axios({
                method: 'get',
                url: 'https://jsonplaceholder.typicode.com/todos/1'
            }).then((result) => {
                console.log(result.data);   
            }) */

            axios.get('https://jsonplaceholder.typicode.com/todos/1').then((result) => {
                console.log(result.data);
            })
        }

        //通过axios发送异步post请求
        function post() {
            // axios({
            //     method: 'post',
            //     url: 'https://jsonplaceholder.typicode.com/todos',
            // }).then((result) => {
            //     console.log(result.data);
            // })

            axios.post('https://jsonplaceholder.typicode.com/todos').then((result) => {
                console.log(result.data);
            })
        }


    </script>
    
</body>
</html>

总结

        Axios 作为一个现代化的 HTTP 客户端库,相较于传统的 AJAX 技术,无论在语法还是功能上都有了显著的提升。它使得与服务器的异步交互变得更加容易,特别是在处理大量网络请求时,不仅提高了代码的可读性,也减轻了维护的难度。对于 Web 开发者来说,了解并掌握 Axios 的用法将极大地提升开发效率。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2195674.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

其他:Python语言绘图合集

文章目录 介绍注意导入数据函数模块画图 介绍 python语言的科研绘图合集 注意 This dataset includes the following (All files are preceded by "Marle_et_al_Nature_AirborneFraction_"):- "Datasheet.xlsx": Excel dataset containing all annual a…

感知机学习算法

感知机 一、感知机简介二、感知机模型2.1 感知机的基本组成2.2 求和函数2.2.1 时间总合2.2.2 空间总合 2.3 激活函数2.4 学习算法2.4.1 赫布学习规则2.4.2 Delta学习规则 三、 结论参考文献 一、感知机简介 M-P神经元模型因其对生物神经元激发过程的极大简化而成为神经网络研究…

qt_c++_xml简单示范demo

迅雷链接 链接&#xff1a;https://pan.xunlei.com/s/VO8bJODxPfPHE0x3nfUa2KZ1A1?pwdtuxq# 复制这段内容后打开手机迅雷App&#xff0c;查看更方便 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QTextCodec>#include <QFile&g…

PGMP-01概述2

目录 1.what is program management? 项目集管理 2.relationships among portfolio,program,and project management and roles in OPM 4.relationships among portfolio,program,and project management 5.组织战略、项目集管理和运营管理之间的关系 6.business vlaue…

sqli-labs靶场less-9和less-10

sqli-labs靶场less-9 本文只展示如何利用dnslog注入通过本关&#xff0c;注入原理可以参考我另外一篇文章 DSNlog注入原理 1、确定闭合方式 http://192.168.140.130/sq/Less-9/?id1 发现id的值不论为任何值&#xff0c;页面回显都是一致的You are in… 判断不存在布尔注入…

初谈构造函数和析构函数

加油学习的一天~~>_<~~ 文章目录 目录 文章目录 前言 一、什么是构造函数&#xff1f; 二、析构函数 &#xff08;1&#xff09;概念&#xff1a; 总结 前言 构造函数是特殊的成员函数&#xff0c;需要注意的是&#xff0c;构造函数虽然名称叫构造&#xff0c;但是构造…

【Flutter】- 核心语法

文章目录 知识回顾前言源码分析1. 有状态组件2. 无状态组件3. 组件生命周期4. 常用组件Container组件Text组件Image组件布局组件row colum stack expandedElevntButton按钮拓展知识总结知识回顾 【Flutter】- 基础语法 前言 Flutter是以组件化的思想构建客户端页面的,类似于…

Linux中的网络指令:ping、netstat、watch、pidof、xargs

目录 Ping指令 netstat指令 watch指令 pidof指令 xargs指令 Ping指令 功能&#xff1a;检测两台主机间的网络连通性 语法&#xff1a;ping [选项] 目标主机的IP地址 &#xff08;192.168.1.1&#xff09;或域名&#xff08;google.com&#xff09; 常见选项&#xff1a…

用户登录与信息管理:实现小程序登录与用户信息存储

用户登录与信息管理&#xff1a;实现小程序登录与用户信息存储 在现代的移动应用中&#xff0c;用户登录与信息管理是构建个性化用户体验的基础。小程序作为轻量级的应用形式&#xff0c;在简化开发流程的同时&#xff0c;也需要我们妥善管理用户的登录状态与用户信息。本文将…

动态规划10:174. 地下城游戏

动态规划解题步骤&#xff1a; 1.确定状态表示&#xff1a;dp[i]是什么 2.确定状态转移方程&#xff1a;dp[i]等于什么 3.初始化&#xff1a;确保状态转移方程不越界 4.确定填表顺序&#xff1a;根据状态转移方程即可确定填表顺序 5.确定返回值 题目链接&#xff1a;174.…

【学习笔记】kruskal重构树

前言 最近一场div2没开出C2&#xff0c;猛掉104分。 赛后补E&#xff0c;发现自己连E1都没思路&#xff0c;一问才知道是kruskal重构树。 好吧&#xff0c;OI时期欠下的债该还了。 kruskal重构树是什么 它是一棵 2 n − 1 2n-1 2n−1 个点的二叉树。点有点权&#xff0c;下…

深入挖掘C++中的特性之一 — 多态

目录 1.多态的概念 2.多态的定义及其实现 1.虚函数 2.虚函数的重写/覆盖 3.实现多态的必要条件 4.多态的代码呈现 5.来一道小题&#xff0c;深入理解一下多态 3.虚函数重写的一些其他问题 1.协变 2.析构函数的重写 4.override和final关键字 5.重载/重写/隐藏的对比&…

动态规划算法专题(四):子串、子数组系列

目录 1、最大子数组和 1.1 算法原理 1.2 算法代码 2、环形子数组的最大和 2.1 算法原理 2.2 算法代码 3、乘积最大子数组 3.1 算法原理 3.2 算法代码 4、乘积为正数的最长子数组长度 4.1 算法原理 4.2 算法代码 5、等差数列划分 5.1 算法原理 5.2 算法代码 6、…

C++读取大文件三种方法速度比较

目录 测试说明第一种方法&#xff1a;按块读&#xff0c;一次读8kb第二种方法&#xff1a;按行读&#xff0c;一次读一行第三种方法&#xff1a;多线程并行读取完整示例 测试说明 测试文件&#xff1a;100万行&#xff0c;每一行是两个小数&#xff0c;中间用逗号隔开&#xf…

python脚本实现Redis未授权访问漏洞利用

之前介绍过Redis未授权访问漏洞&#xff0c;本文使用python实现Redis未授权访问检测以及对应三种getshell。 1 测试环境准备 CentOS 7&#xff08;192.168.198.66/24&#xff09;&#xff1a;安装 Redis 服务器并用 root 权限开启服务&#xff0c;关闭保护模式&#xff1b;安…

4-coumarate--CoA ligase4-香豆酸:辅酶A连接酶4CL-文献精读63

Characterization and Functional Analysis of 4-Coumarate:CoA Ligase Genes in Mulberry 桑树中4-香豆酸&#xff1a;辅酶A连接酶基因的表征与功能分析 桑树T2T基因组-文献精读16 摘要 4-香豆酸&#xff1a;辅酶A连接酶&#xff08;4CL&#xff09;由一个小型的多基因家族…

pytest(六)——allure-pytest的基础使用

前言 一、allure-pytest的基础使用 二、需要掌握的allure特性 2.1 Allure报告结构 2.2 Environment 2.3 Categories 2.4 Flaky test 三、allure的特性&#xff0c;allure.step()、allure.attach的详细使用 3.1 allure.step 3.2 allure.attach&#xff08;挺有用的&a…

软件测试比赛-学习

一、环境配置 二、浏览器适配 //1.设置浏览器的位置,google浏览器位置是默认且固定在电脑里的//2.设置浏览器驱动的位置,C:\Users\27743\AppData\Local\Google\Chrome\ApplicationSystem.setProperty("webdriver.chrome.driver", "C:\\Users\\27743\\AppData\\…

【python实操】python小程序之对象的属性操作

引言 python小程序之对象的属性操作 文章目录 引言一、对象的属性操作1.1 题目1.2 代码1.3 代码解释 二、思考2.1 添加属性2.2 获取属性 一、对象的属性操作 1.1 题目 给对象添加属性 1.2 代码 class Cat:# 在缩进中书写⽅法def eat(self):# self 会⾃动出现,暂不管print(f…

弹性分布式数据集RDD详细说明

文章目录 整体介绍一、定义与特性二、操作与转换三、存储级别与持久化四、依赖关系与容错机制五、优化与性能调优 常见操作支持的数据格式1.文本文件 (Text Files)2. CSV 文件3. JSON 文件4. Parquet 文件5. Sequence Files6.Hadoop文件读取A. 读取HDFS上的文本文件B. 使用Hado…