Axios 简单使用指南

2023-11-01

概述

什么是 Axios ?

Axios 是一个开源的基于 promiseHTTP 请求库,一般常用于浏览器和 node.js 中。它能够在具有相同代码库的浏览器和 nodejs 中同时运行,在服务器侧,它利用服务器端原生的 node.js http 模块,而在客户端侧(一般是浏览器),则使用的是 XMLHttpRequest

Vue 2.0 版本开始,就极力推荐使用 Axios 来进行 ajax 请求,其源码仓库为:

https://github.com/axios/axios

特性

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

Axios 的安装

Axios 安装主要有两种方式,一种是通过引入 CDN,另一种则是通过 npm 进行安装,两中安装的方式介绍如下。

  1. 使用 CDN
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
  1. 使用 npm
npm install axios

支持的浏览器

Chrome Firefox Safari [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X06QFCcI-1665585598285)(https://raw.github.com/alrra/browser-logos/master/src/opera/opera_48x48.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zkfX0OBo-1665585598286)(https://raw.github.com/alrra/browser-logos/master/src/edge/edge_48x48.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aapz9VEc-1665585598286)(https://raw.github.com/alrra/browser-logos/master/src/archive/internet-explorer_9-11/internet-explorer_9-11_48x48.png)]
Latest ✔ Latest ✔ Latest ✔ Latest ✔ Latest ✔ 8+ ✔

Axios 的使用

Axios 提供了两种不同的方式来发送 HTTP 请求,其中一种是直接通过 axios() 方法,而另一种则是通过 axios 对象提供的跟 HTTP 方法对应起来的方法来发起请求,例如:

  • axios.get()
  • axios.post()
  • axios.update()
  • axios.put()
  • ……

get 请求

  • 语法
axios.get(url?key=value&key2=value2).then(function(response){}, function(err){});
  • 实例
<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>Axios 使用</title>
		<link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.1/css/bootstrap.css" rel="stylesheet">
		<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
	</head>
	<body>
		<div class="container">
			<button class="btn btn-primary">GET 请求</button>
		</div>
		<script>
			const btn = document.querySelector("button");
			btn.onclick = function() {
				axios.get("https://www.baidu.com/s?wd=村雨遥").then(response => {
					console.log(response)
				});
			}
		</script>
	</body>
</html>

post 请求

  • 语法:
axios.post(url, {key=value, key2=value2}).then(function(response){}, function(err){});
  • 实例
<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>Axios 使用</title>
		<link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.1/css/bootstrap.css" rel="stylesheet">
		<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
	</head>
	<body>
		<div class="container">			
			<button class="btn btn-warning">POTST 请求</button>
		</div>
		<script>
            data: {
                wd: "村雨遥"
            }
			const btn = document.querySelector("button");           
			btn.onclick = function() {
				axios.post('https://www.baidu.com/s', data).then(response => {
					console.log(response)
				});
			}
		</script>
	</body>
</html>

put 请求

  • 语法
axios.put(url, {key=value, key2=value2}).then(function(response){}, function(err){});
  • 实例
<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>Axios 使用</title>
		<link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.1/css/bootstrap.css" rel="stylesheet">
		<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
	</head>
	<body>
		<div class="container">
			<button class="btn btn-success">PUT 请求</button>
		</div>
		<script>
			data: {
				name: "村雨遥",
				id: "cunyu1943"
			}
			const btn = document.querySelector("button");
			btn.onclick = function() {
				axios.put('https://www.baidu.com/s', data).then(response => {
					console.log(response)
				});
			}
		</script>
	</body>
</html>

delete 请求

  • 语法
axios.delete(url?key=value&key2=value2).then(function(response){}, function(err){});
  • 实例
<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>Axios 使用</title>
		<link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.1/css/bootstrap.css" rel="stylesheet">
		<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
	</head>
	<body>
		<div class="container">
			<button class="btn btn-danger">DELETE 请求</button>
		</div>
		<script>
			const btn = document.querySelector("button");
			btn.onclick = function() {
				axios.delete("https://www.baidu.com/s?wd=村雨遥").then(response => {
					console.log(response)
				});
			}
		</script>
	</body>
</html>

总结

以上就是本文的所有内容了,主要介绍了 Axios 的定义、特性、如何安装以及所支持的浏览器,然后介绍了如何使用 Axios 来模拟发起最常用的 GETPOSTPUT 以及 DELETE 请求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Axios 简单使用指南 的相关文章

随机推荐

  • 红黑树和AVL树的比较分析

    定义 AVL树全称是平衡二叉搜索树 相比于红黑树 他是一种高度平衡的二叉搜索树 所有节点的左右子树高度差不超过1 红黑树是一种弱平衡的二叉搜索树 它只要求部分达到平衡 其保证最长路径最多是最短路径的2倍 增删查比较 插入 就插入节点导致树失
  • 团队管理和协作,Markdown,原型的使用

    背景 公司的技术文档和接口都需要多人合作编写 博客只能是个人的技术总结 无法有效的团队管理 最终 技术文档 接口 数据字典 查看Demo web页面原型 app原型 在线作图 流程图 思维导图 原型图 UML 网络拓扑图 组织结构图
  • 【信息】宁波银行金融科技部:常见问题解答

    0 内推 我的内推码 90OF50 宁波银行金融科技部2023届校招开始了 内推码 90OF50 社招请直接与我联系哦 1 说明 本文是对很多朋友都关心的一些问题的集中解答 以免大家重复地询问一样的问题 大家自取自己关注的内容即可 顺序可能
  • Android Studio制作简单计算器

    代码地址 https github com xjhqre android calculator 效果演示 1 连续加法 2 连续减法 3 连续乘法 4 连续除法 5 优先级运算 6 退格功能 7 错误提示 制作步骤 1 创建按钮图片 1 1
  • bat小游戏代码大全_Python俄罗斯方块游戏代码

    本游戏共两个文件 blocks py和main py blocks py定义各类方块 main py定义游戏画面 blocks py import randomfrom collections import namedtuplePoint
  • CSS导航栏及下拉菜单

    导航栏对于一个网站来说非常重要 熟练地使用CSS可以转换成好看的导航栏而不是枯燥的HTML菜单 导航栏基本上是一个链接列表 所以使用 ul ul 和 li li 元素非常有意义 导航栏就是建立在列表标签的精确熟练使用上 小复习 伪类的使用方
  • SQL的开窗函数

    引用 在开窗函数出现之前存在着非常多用 SQL 语句非常难解决的问题 非常多都要通过复杂的相关子查询或者存储过程来完毕 为了解决这些问题 在2003年ISO SQL标准增加了开窗函数 开窗函数的使用使得这些经典的难题能够被轻松的解决 眼下在
  • 怎么查看端口号被哪个程序占用从而解决端口冲突

    在java后台开发过程中我们可能都会遇到端口被占用的问题 但是此时又不知道端口被哪个端口占用 用下面方法可以查看端口是被哪个程序占用 然后结束这个程序就可以解决端口被占用的问题 1 按windows R键 输入cmd命令 回车 2 输入ne
  • 【微信小程序开发】一文带你详解小程序组件和 API 的使用

    引言 在小程序开发中 组件和API是非常重要的部分 它们可以帮助我们构建丰富的用户界面和实现各种功能 本文将介绍小程序中常用的组件和API 并提供相应的代码示例 文章目录 引言 组件 文本组件 图片组件 按钮组件 输入框组件 列表组件 AP
  • 三大移动Web开发框架哪个适合你?

    我最近特别关注JavaScript驱动的移动应用开发解决方案 先后撰文介绍了众多的相关话题 包括jQuery Mobile jQTouch Sencha Touch和PhoneGap 我得承认 要搞清楚这一批前沿技术并非易事 于是我这回概述
  • java远程调试_Java 远程调试原理(学习笔记)

    Java远程调试的原理 JDWP Java Debug Wire Protocol 两个VM之间通过debug协议进行通信 然后以达到远程调试的目的 两者之间可以通过socket进行通信 其中 调试的程序常常被称为debugger 而被调试
  • postgis中将数据库备份到其它数据库中还原

    1 备份数据库 可以用命令操作 pg dump U postgres h hostip d joint boot Fc gt D python Project PG data joint jar 2 创建新的数据库 可以在其它postgis
  • vCard和MECARD格式

    vcard和MECARD都是电子名片的格式 这几篇文章介绍都很详细 MECARD格式的电子名片简单介绍 链接1 链接2 vCard格式 链接 分割线 补充一个只有微信扫码时会出现的问题 不管是vCard还是MECARD 也不管vCard是2
  • SpringBoot优缺点分析

    Spring的优点分析 Spring是Java企业版 Java Enterprise Edition JEE 也称J2EE 的轻量级代替品 无需开发重量级的Enterprise JavaBean EJB Spring为企业级Java开发提供
  • java进阶一:java集合

    1 集合简介 集合和数组类似 都是储存元素的容器 数组像是静态容器 长度一旦创建就不能再改变 元素类型必须统一 只能通过下标去索引元素等 集合像是动态容器 集合的长度可以动态的改变 元素类型可以不一致 可以用某个映射的关系去索引元素等 ja
  • vue-admin-template学习(一)

    vue admin template学习 一 vue admin template 框架结构 克隆运行项目 vue admin template项目改造 一 分析登录请求的思路 请求路线 登录 创建axios实例 request拦截器 re
  • Java实现捕鱼达人附源码

    1 游戏原理 swing 多线程 事件监听 swing实现的界面的绘制 多线程实现产生多种鱼 实现鱼的游动 以及网的移动 事件监听实现鼠标捕鱼事件的捕获 2 主要类和方法解释 鱼 背景 网都是图片 之所有是动态的效果 因为线程或者鼠标移动引
  • 批量替换文件及文件夹名称(bat)

    echo off SetLocal EnableDelayedExpansion set p old 输入原字符 Set p new 输入新字符 先处理文件 For f delims i in dir s b a d do Set a nx
  • QT(5)—— Q_D 与 Q_Q QObject与 QObjectPrivate

    核心就是 QObject QObject QObjectPrivate dd QObject parent d ptr dd d ptr gt q ptr this 互指 template
  • Axios 简单使用指南

    概述 什么是 Axios Axios 是一个开源的基于 promise 的 HTTP 请求库 一般常用于浏览器和 node js 中 它能够在具有相同代码库的浏览器和 nodejs 中同时运行 在服务器侧 它利用服务器端原生的 node j