使用 axios 进行 HTTP 请求

使用 axios 进行 HTTP 请求


文章目录

      • 使用 axios 进行 HTTP 请求
        • 1、介绍
        • 2、安装和引入
        • 3、axios 基本使用
        • 4、axios 发送 GET 请求
        • 5、axios 发送 POST 请求
        • 6、高级使用
        • 7、总结

1、介绍

什么是 axios

axios 是一个基于 promise 的 HTTP 库,可以用于浏览器和 Node.js 中发送 HTTP 请求。它的底层实现是 XMLHttpRequest,对开发者提供了简洁的 API 来处理各种 HTTP 请求。

axios 的特性

  • 从浏览器中创建 XMLHttpRequests
  • 从 Node.js 创建 HTTP 请求
  • 支持 Promise API
  • 拦截请求和响应
  • 转换请求数据和响应数据
  • 取消请求
  • 自动转换 JSON 数据
  • 客户端支持防御 XSRF

axios 官网

axios 官网

image-20240623211224545

2、安装和引入

浏览器环境

通过 CDN 引入:

<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>

Node.js 环境

通过 npm 安装:

npm install axios

然后在代码中引入:

const axios = require('axios');
3、axios 基本使用

语法

axios.get('url').then(response => {// 请求成功处理}).catch(error => {// 请求失败处理}).then(() => {// 请求完成处理(无论成功或失败)});

示例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Axios Basic Usage</title>
</head>
<body><button class="btn1">基本使用</button><button class="btn2">发送 GET 请求</button><button class="btn3">发送 POST 请求</button><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script><script>// 基本使用document.querySelector('.btn1').addEventListener('click', function() {axios.get('https://autumnfish.cn/api/joke/list?num=10').then(response => {console.log(response);console.log(response.data);}).catch(error => {console.error(error);}).then(() => {console.log('请求完成');});});</script>
</body>
</html>
4、axios 发送 GET 请求

语法

axios.get('url', {params: { key: value }
})
.then(response => {// 请求成功处理
});

示例

document.querySelector('.btn2').addEventListener('click', function() {axios.get('https://autumnfish.cn/api/joke/list', {params: { num: 10 }}).then(response => {console.log(response.data);});
});
5、axios 发送 POST 请求

语法

axios.post('url', {key: value
})
.then(response => {// 请求成功处理
});

示例

document.querySelector('.btn3').addEventListener('click', function() {axios.post('http://www.liulongbin.top:3009/api/login', {username: '1423543',password: 'afsfs'}).then(response => {console.log(response.data);});
});
6、高级使用

拦截器

axios 提供了请求和响应拦截器,可以在请求或响应被处理前做一些操作。

// 添加请求拦截器
axios.interceptors.request.use(config => {// 在发送请求之前做些什么return config;
}, error => {// 对请求错误做些什么return Promise.reject(error);
});// 添加响应拦截器
axios.interceptors.response.use(response => {// 对响应数据做点什么return response;
}, error => {// 对响应错误做点什么return Promise.reject(error);
});

取消请求

可以使用 CancelToken 取消请求。

const CancelToken = axios.CancelToken;
let cancel;axios.get('/user/12345', {cancelToken: new CancelToken(function executor(c) {cancel = c;})
});// 取消请求
cancel();

并发请求

axios 提供了 axios.allaxios.spread 方法来处理并发请求。

function getUserAccount() {return axios.get('/user/12345');
}function getUserPermissions() {return axios.get('/user/12345/permissions');
}axios.all([getUserAccount(), getUserPermissions()]).then(axios.spread((acct, perms) => {// 两个请求现在都执行完成console.log(acct.data);console.log(perms.data);}));

错误处理

处理请求中的错误是非常重要的,axios 提供了详细的错误信息。

axios.get('/user/12345').then(response => {console.log(response);}).catch(error => {if (error.response) {// 请求已发出,服务器响应了状态码,但状态码超出了 2xx 范围console.log(error.response.data);console.log(error.response.status);console.log(error.response.headers);} else if (error.request) {// 请求已发出,但没有收到响应console.log(error.request);} else {// 发生了在设置请求时触发的错误console.log('Error', error.message);}console.log(error.config);});
7、总结

axios 是一个功能强大的 HTTP 请求库,适用于浏览器和 Node.js 环境。它提供了丰富的功能,包括请求和响应拦截器、取消请求、并发请求处理等。通过本文的介绍,你应该能够掌握 axios 的基本用法和一些高级用法,并在实际项目中灵活应用。。

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

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

相关文章

计算机组成入门知识

前言&#x1f440;~ 数据库的知识点先暂且分享到这&#xff0c;接下来开始接触计算机组成以及计算机网络相关的知识点&#xff0c;这一章先介绍一些基础的计算机组成知识 一台计算机如何组成的&#xff1f; 存储器 CPU cpu的工作流程 主频 如何衡量CPU好坏呢&#xff1f…

我的常见问题记录

1,maven在idea工具可以正常使用,在命令窗口执行出现问题 代码: E:\test-hello\simple-test>mvn clean compile [INFO] Scanning for projects... [WARNING] [WARNING] Some problems were encountered while building the effective model for org.consola:simple-test:jar…

【从0实现React18】 (三) 初探reconciler 带你初步探寻React的核心逻辑

Reconciler 使React核心逻辑所在的模块&#xff0c;中文名叫协调器&#xff0c;协调(reconciler)就是diff算法的意思 reconciler有什么用&#xff1f; 在前端框架出现之前&#xff0c;通常会使用 jQuery 这样的库来开发页面。jQuery 是一个过程驱动的库&#xff0c;开发者需要…

【windows解压】解压文件名乱码

windows解压&#xff0c;文件名乱码但内容正常。 我也不知道什么时候设置出的问题。。。换了解压工具也没用&#xff0c;后来是这样解决的。 目录 1.环境和工具 2.打开【控制面板】 3.点击【时钟和区域】 4.选择【区域】 5.【管理】中【更改系统区域设置】 6.选择并确定…

算是一些Transformer学习当中的重点内容

一、基础概念 Transformer是一种神经网络结构&#xff0c;由Vaswani等人在2017年的论文Attentions All YouNeed”中提出&#xff0c;用于处理机器翻译、语言建模和文本生成等自然语言处理任务。Transformer同样是encoder-decoder的结构&#xff0c;只不过这里的“encoder”和“…

完美解决找不到steam_api64.dll无法执行代码问题

游戏缺失steam_api64.dll通常意味着该游戏依赖于Steam平台的一些功能或服务&#xff0c;而这个DLL文件是Steam客户端的一部分&#xff0c;用于游戏与Steam平台之间的交互。如果游戏中缺失这个文件&#xff0c;可能会出现无法启动、崩溃或其他问题。 一&#xff0c;详细了解stea…

第13关:存储过程1、第14关:存储过程2。(2021数据库期末一)

目录 首先需要学习和了解的知识 第13关&#xff1a;存储过程1 任务描述 答案 第14关&#xff1a;存储过程2 任务描述 答案 本篇博客的答案博主是学习别人得来的&#xff0c;敢于借鉴和学习哈哈&#xff01;&#xff01; 首先需要学习和了解的知识 了解什么是存储过程以及…

音频——性能测试中的基本概念

文章目录 频率响应平均电平增益ADC 路径增益DAC 路径增益底噪信噪比总谐波失真+噪声(THD+N)延迟频率响应 对于音频设备,频率响应可以理解为音频设备对不同频率信号的处理或重现。对于音频信号频率,一般关注20Hz~20kHz范围。理想情况下,输入幅度相同的不同频率信号,过音频…

吴恩达机器学习 第二课 week4 决策树

目录 01 学习目标 02 实现工具 03 问题描述 04 构建决策树 05 总结 01 学习目标 &#xff08;1&#xff09;理解“熵”、“交叉熵&#xff08;信息增益&#xff09;”的概念 &#xff08;2&#xff09;掌握决策树的构建步骤与要点 02 实现工具 &#xff08;1&#xff09;…

常见的七大排序

目录 前言 冒泡排序 选择排序 插入排序 堆排序 希尔排序 快排 归并排序 前言 本文介绍七种常见的排序方式&#xff1a;冒泡排序&#xff0c;选择排序&#xff0c;插入排序&#xff0c;堆排序&#xff0c;希尔排序&#xff0c;快排&#xff0c;归并排序 冒泡排序 将每2…

Linux使用——查看发行版本、内核、shell类型等基本命令

先做快照 虚拟机中编辑网络 关机 普通账户和管理员账户 互相对照 localhost相当于IP 参数: 短格式:以减号(-)开头&#xff0c;参数字母 长格式:以2个减号(--)后跟上完整的参数单词 当前发行版本 [rootserver ~]# cat /etc/redhat-release Red Hat Enterprise Linux release 9.…

C++设计模式——Flyweight享元模式

一&#xff0c;享元模式简介 享元模式是一种结构型设计模式&#xff0c;它将每个对象中各自保存一份数据的方式改为多个对象共享同一份数据&#xff0c;该模式可以有效减少应用程序的内存占用。 享元模式的核心思想是共享和复用&#xff0c;通过设置共享资源来避免创建过多的实…

MSPM0G3507——定时器例程1——TIMA_periodic_repeat_count

以下示例以周期模式配置TimerA0&#xff0c;并使用重复计数功能每隔2秒切换一次GPIO。注意&#xff1a;重复计数功能特定于TimerA0实例&#xff0c;而不是其他TimerA实例。这里是一次500毫秒&#xff0c;重复了四次 主函数&#xff1a; #include "ti_msp_dl_config.h&quo…

20240621日志:大模型压缩-从闭源大模型蒸馏

目录 1. 核心内容2. 方法2.1 先验估计2.2 后验估计2.3 目标函数 3. 交叉熵损失函数与Kullback-Leibler&#xff08;KL&#xff09;损失函数 location&#xff1a;beijing 涉及知识&#xff1a;大模型压缩、知识蒸馏 Fig. 1 大模型压缩-知识蒸馏 1. 核心内容 本文提出在一个贝…

Program-of-Thoughts(PoT):结合Python工具和CoT提升大语言模型数学推理能力

Program of Thoughts Prompting:Disentangling Computation from Reasoning for Numerical Reasoning Tasks github&#xff1a;https://github.com/wenhuchen/Program-of-Thoughts 一、动机 数学运算和金融方面都涉及算术推理。先前方法采用监督训练的形式&#xff0c;但这…

发表在SIGMOD 2024上的高维向量检索/向量数据库/ANNS相关论文

前言 SIGMOD 2024会议最近刚在智利圣地亚哥结束&#xff0c;有关高维向量检索/向量数据库/ANNS的论文主要有5篇&#xff0c;涉及混合查询&#xff08;带属性或范围过滤的向量检索&#xff09;优化、severless向量数据库优化、量化编码优化、磁盘图索引优化。此外&#xff0c;也…

微信小程序入门2

微信开发者工具的安装方法 1.打开微信开发者工具下载页面 在微信小程序管理后台的左侧边栏中选择“开发工具”&#xff0c;然后选择“开发者工具”&#xff0c;即可找到微信开发者工具的下载页面。 2.打开微信开发者工具的下载链接页面 单击“下载” 按钮下载&#xff0c;即…

越复杂的CoT越有效吗?Complexity-Based Prompting for Multi-step Reasoning

Complexity-Based Prompting for Multi-step Reasoning 论文&#xff1a;https://openreview.net/pdf?idyf1icZHC-l9 Github&#xff1a;https://github.com/FranxYao/chain-of-thought-hub 发表位置&#xff1a;ICLR 2023 Complexity-Based Prompting for Multi-step Reason…

STM32 - LED灯 蜂鸣器

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四" &#x1f50e;&#x1f3c5; 荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…