一篇学通Axios

Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 node.js 环境。它提供了一种简单易用的方式来发送 HTTP 请求,并支持诸如请求和响应拦截、转换数据、取消请求以及自动转换 JSON 数据等功能。
在这里插入图片描述

Axios 名字的由来

Axios 的名字来源于希腊神话中的英雄 Axios。这位英雄是一个勇敢的冒险家,拥有强大的力量和知识,能够改变任何事物,使它们变得更加强大。Axios 库的设计初衷和命名灵感正是源自于这位英雄,旨在提供一种强大且灵活的 HTTP 客户端,帮助开发者在前端和 Node.js 环境中轻松发送 HTTP 请求,并处理各种复杂的网络交互场景。

Axios 详细介绍

  1. 基本概念

    • Axios(全称 ajax I/O system)不是一种新技术,本质上是对原生 XHR(XMLHttpRequest)的封装,但它是基于 Promise 的实现版本,符合最新的 ES 规范。
    • Axios 提供了简单而直观的 API,使得在前端应用程序中进行 HTTP 通信变得更加容易。
    • Axios 可以与现代前端框架(如 React、Vue.js 和 Angular)以及后端服务器(如 Node.js)配合使用。
  2. 主要特性

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

Axios 安装

Axios 可以通过多种方式进行安装,包括使用 npm、yarn 或 CDN。

  • 使用 npm
    npm install axios
  • 使用 yarn
   yarn add axios
  • 使用 CDN
   <script src="https://unpkg.com/axios/dist/axios.min.js"></script>

Axios 示例

1. 发送 GET 请求

  • 基本用法
    
axios.get('/user?ID=12345')  .then(function (response) {  console.log(response);  })  .catch(function (error) {  console.log(error);  });  // 或者使用 axios(config) 形式  
axios({  method: 'get',  url: '/user',  params: {  ID: 12345  }  
})  
.then(function (response) {  console.log(response);  
})  
.catch(function (error) {  console.log(error);  
});
  • 使用 axios 实例
const instance = axios.create({  baseURL: 'https://some-domain.com/api/',  timeout: 1000,  headers: {'X-Custom-Header': 'foobar'}  
});  // 发送请求  
instance.get('/user?ID=12345')  .then(function (response) {  console.log(response);  })  .catch(function (error) {  console.log(error);  });

2. 发送 POST 请求

  • application/json 类型
axios.post('/user', {  firstName: 'Fred',  lastName: 'Flintstone'  })  .then(function (response) {  console.log(response);  })  .catch(function (error) {  console.log(error);  });
  • form-data 类型
const formData = new FormData();  
formData.append('file', fileInput.files[0]);  
formData.append('user', '12345');  axios.post('/upload', formData, {  headers: {  'Content-Type': 'multipart/form-data'  }  })  .then(function (response) {  console.log(response);  })  .catch(function (error) {  console.log(error);  });

3 请求拦截器和响应拦截器

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

  • Axios 官方站点: https://axios-http.com/zh/
  • Axios 源码地址:https://github.com/axios/axios


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

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

相关文章

Linux操作系统入门(适用java软件开发)

1.什么是操作系统? 操作系统&#xff08;Operating System&#xff0c;简称 OS&#xff09;是一种系统软件&#xff0c;它管理和控制计算机硬件与软件资源&#xff0c;为用户和应用程序提供一个接口和环境来访问计算机系统的服务和功能。操作系统的主要目标是提供一个方便、有…

探索性数据分析:使用Python与Pandas库实现数据洞察

探索性数据分析&#xff1a;使用Python与Pandas库实现数据洞察 引言 在当今数据驱动的时代&#xff0c;数据分析已成为决策制定、策略规划和业务优化的关键环节。无论是商业智能、金融分析还是市场研究&#xff0c;数据分析都扮演着至关重要的角色。Pandas库作为Python生态系统…

微积分-导数8(线性近似和微分)

线性近似 我们已经看到&#xff0c;在切点附近&#xff0c;曲线与其切线非常接近。事实上&#xff0c;通过放大可微函数图上的某一点&#xff0c;我们注意到图形看起来越来越像它的切线&#xff08;见图&#xff09;。这一观察是找到函数近似值的方法的基础。 这个想法是&am…

Java [ 进阶 ] JVM双亲委派机制✨

目录 ✨探索Java进阶 双亲委派机制✨ 理解 Java 的双亲委派机制 什么是双亲委派机制&#xff1f; 类加载器的层次结构 双亲委派机制的工作原理 优缺点分析 优点 缺点 一些面试题目&#xff1a; 什么是双亲委派机制&#xff1f; 双亲委派机制的工作流程是怎样的&am…

monodepth代码与原理对照实现

先实现demomonodepth/monodepth_simple.py at master mrharicot/monodepth GitHub import os os.environ[TF_CPP_MIN_LOG_LEVEL]0 这行代码是为tensorflow设置环境变量TF_CPP_MIN_LOG_LEVEL,用来控制tensorflow c后端输出的日志级别。0就是输出所有级别的日志信息。包括(调…

vue2学习笔记3 - 开发环境知识补充:live server简介

学习笔记1搭建开发环境中&#xff0c;在vs code里安装了live server插件&#xff0c;后续多次使用open with live server来打开浏览器&#xff0c;展示代码运行效果。本着知其然也要知其所以然的态度&#xff0c;稍稍了解了一下Live server。 什么是Live Server Live Server是…

探索Conda的依赖迷宫:包依赖树的构建与解析

探索Conda的依赖迷宫&#xff1a;包依赖树的构建与解析 引言 在复杂的软件项目中&#xff0c;依赖管理是确保软件正常运行的关键。Conda作为流行的Python包管理器&#xff0c;提供了强大的依赖树功能&#xff0c;帮助用户理解和管理包依赖关系。本文将详细介绍如何在Conda中使…

个性化你的编码世界:深度定制PyCharm主题与字体

个性化你的编码世界&#xff1a;深度定制PyCharm主题与字体 引言 在编码的旅途中&#xff0c;一个舒适且个性化的环境能够显著提升开发体验。PyCharm作为业界领先的集成开发环境&#xff08;IDE&#xff09;&#xff0c;提供了丰富的定制选项&#xff0c;允许用户根据个人喜好…

力扣--20. 有效的括号

目录 题目 思路 注意 题目 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括…

DP讨论——适配器模式

学而时习之&#xff0c;温故而知新。 敌人出招&#xff08;使用场景&#xff09; 说是自己的程序对接第三方的库&#xff0c;但是自己的代码的接口设计完毕了&#xff0c;如何对接上&#xff1f; 你出招 适配器模式就是为此而生的——我觉得应该是该解决方法被命名为了适配…

滞后序列分析案例详解

一个半小时 超出30分钟 日期&#xff1a;2024-07-13 19:14:33 回放 摘要 Python在行为分析中的应用 主要讲述了如何使用Python处理序列数据&#xff0c;以及如何结合定性分析和定量分析来全面分析课程内容。讲者提到了一种叫做分层法的分类方法&#xff0c;该方法使用了布鲁…

ArcGIS Pro SDK (九)几何 2 坐标

ArcGIS Pro SDK &#xff08;九&#xff09;几何 2 坐标 文章目录 ArcGIS Pro SDK &#xff08;九&#xff09;几何 2 坐标1 矢量极坐标2 获取矢量倾角3 获取矢量方位角4 向量运算5 2D 矢量操作6 生成器 环境&#xff1a;Visual Studio 2022 .NET6 ArcGIS Pro SDK 3.0 1 矢量…

知识图谱数据库基本知识

文章目录 知识图谱数据模型知识图谱查询语言随着知识图谱规模的日益增长,数据管理愈加重要。一方面,以文件形式保存的知识图谱显然无法满足用户的查询、检索、推理、分析及各种应用需求;另一方面,传统数据库的关系模型与知识图谱的图模型之间存在显著差异,关系数据库无法有…

ctfshow-web入门-php特性(web96-web99)

目录 1、web96 2、web97 3、web98 4、web99 1、web96 试了下通配、转义、拼接、大小写都不行 这里使用绝对路径或者当前路径绕过&#xff1a; ?u./flag.php ?u/var/www/html/flag.php 还可以使用 php 伪协议&#xff1a; ?uphp://filter/resourceflag.php 2、web97 关…

数据结构(Java):力扣Stack集合OJ题

1、括号匹配问题 . - 力扣&#xff08;LeetCode&#xff09; 1.1 思路分析 根据栈的先进后出原则&#xff0c;我们可以这样解决问题&#xff1a; 遍历字符串&#xff0c;遇见左括号就将左括号push入栈&#xff1b;遇见右括号就pop出栈&#xff0c;将出栈的元素和该右括号比较…

pyparsing开启调试

在要匹配的表达后添加set_debug

【密码学】实现消息认证或数字签名的几种方式

消息认证的目的是验证消息的完整性和确认消息的来源。数字签名的目的是不仅验证消息的完整性和来源&#xff0c;还提供了不可否认性。此外&#xff0c;数字签名还可以验证消息的创建时间&#xff0c;防止重放攻击。那么具体有哪些实现的方式呢&#xff1f; 一、仅提供消息认证…

python练习(if--else)

通过input语句获取键盘输入的身高 判断身高是否超过120cm&#xff0c;并通过print给出提示信息。 代码输出示例&#xff1a; 1.欢迎来到乐园。 请输入你的身高&#xff08;cm&#xff09;&#xff1a;130 您的身高超出120cm&#xff0c;游玩需要够票10元。 祝您游玩愉快。 2…

文件内容查阅

cat concatenate files and print on the standard output Linux中一个最简单的且最常用的命令是cat命令。其功能是在终端设备上显示文件内容。 cat命令-n选项用于显示行号。 tac concatenate and print files in reverse tac命令的功能是用于反向显示文件内容&#xff0c;即…

计算机网络复习笔记【面向考纲整理】

计算机网络复习笔记 一、计算机网络体系结构&#xff08;一&#xff09;计算机网络的概念、分类、组成与功能1.计算机网络的概念、组成与功能1.1计算机网络的概念1.2计算机网络的组成1.3计算机网络的功能 2.计算机网络的分类3.计算机网络的标准化工作及相关知识 &#xff08;二…