当前位置: 首页 > article >正文

Axios学习笔记

Axios简介

axios前端异步请求库类似JQuery ajax技术,
ajax用来在页面发起异步请求到后端服务,并将后端服务响应数据渲染到页面上,
jquery推荐ajax技术,但vue里面并不推荐在使用jquery框架,vue推荐使用axios异步请求库。
axios总结:
  • 用来在前端页面发起一个异步请求,请求之后页面不动,响应回来刷新页面局部;
  • 官方定义: axios 异步请求库并不是vue官方库第三方异步库在vue中推荐axios;
  • 特点:易用、简洁且高效的http库 —> 发送http异步请求库。

Axios功能&特性

  • 从浏览器中创建XLHttpRequests从 node.js 创建http请求(发送axios异步请求)
  • 支持Promise API
  • 拦截请求和响应(做拦截器)
  • 转换请求数据和响应数据取消请求
  • 自动转换JSON数据,客户端支持防御XSRF

常规使用

发送Get请求,查询:
axios.get("http://localhost:8081/demo?id=21&name=xiaowang ").then( function(res){//代表请求成功之后处理console.1og (res.data);
}).catch( function (err){//代表请求失败之后处理alert ('进入catch ')console.log (err);
});
// 为给定 ID 的 user 创建请求
axios.get('/user?ID=12345').then(function (response) {console.log(response);}).catch(function (error) {console.log(error);});// 可选的,上面的请求可以这样做
axios.get('/user', {params: {ID: 12345}}).then(function (response) {console.log(response);}).catch(function (error) {console.log(error);});

发送POST,添加

axios.post('/user', {firstName: 'Fred',lastName: 'Flintstone'}).then(function (response) {console.log(response);}).catch(function (error) {console.log(error);});

其他请求

axios.put(.then( ).catch ( ); //修改
axios.patch( ).then( ).catch( );
axios.delete( "ur1?id=21").then ( ).catch ( ); //删除

Axios的封装

import axios from 'axios'
export default function axios(option){return new Promise((resolve,reject) => {//1.创建sxios实例const instance = axios.create({url: 'api',timeout: 5000,headers: ''})//2.传入对象进行网络请求instance(option).then(res => {resolve(res)}).catch(err => {reject(err)})
})
}

Axios创建默认实例发送请求

//创建axios的配置对象
var instance = axios. create({baseURL: 'http://localhost:8081/',        //基础路径,后面的请求的url就直接写接口路径就行timeout: 5000,
});
这里的请求地址,直接写对应的接口路径
instance.get("/demo?id=21&name=xiaowang ").then( function(res) {//代表请求成功之后处理console.log(res);console.1og (res.data);
}).catch( function (err) {//代表请求失败之后处理alert ('进入catch ');console.log (err);
});

Axios封装一个request请求

export function request(config, success, failure) {// 1.创建axios的实例const instance = axios.create({baseURL: 'http://127.0.0.1:8080',timeout: 5000})// 发送真正的网络请求instance(config).then(res => {success(res);}).catch(err => {failure(err)})
}

Axios拦截器

请求拦截器

请求拦截器作用是在发出请求时,拦截下用户的请求,执行完一系列处理再发送出去(像添加cookie、token,请求头等)

配置请求拦截器

  • 首先创建一个axios实例对象
import axios from 'axios'
import { ELMessage } from 'element-plus'
const myRequest = axios.create({baseURL: process.env.BASE_API, // 这里可以写自己访问的地址,例如127.0.0.1timeout: 3000, // 请求超时时间headers: {"Content-Type": "application/json;charset=utf-8"}
})
  • 接下来就是配置请求拦截器(interceptor.request)
myRequest.interceptors.request.use(req=>{...}, // 对发起的请求进行处理,方法写在{}中,req是请求参数err=>{...}, // 出现请求错误时进行的处理
}
下面写一个设置token的实例:
myRequest.interceptors.request.use(config => {const token = localStorage.getItem('token') // 获取存取的tokenif(token){ // 不为空的话就设置进headersconfig.headers['token'] = token}return config},err => {return Promise.reject(error)}
)

响应拦截器

配置响应拦截器

myRequest.interceptors.response.use(res=>{...}, // 对响应进行处理,方法写在{}中,res是返回数据err=>{...}, // 出现请求错误时进行的处理
)
假如服务器的响应为:
{"errCode" : 0,"errDesc" : "Success","data": "xxxxxx"
}
这时候我们可以这样写响应拦截器:
myRequest.interceptors.response.use(res => {if(res.errCode ==  0){return Promise.resolve(res.data)}else {ElMessage({message: "Error",type: 'error',duration: 5 * 1000})return Promise.reject(new Error("Error Message"))}},err => {ElMessage({message: err.data.message,type: 'error',duration: 5 * 1000})}
)
通过上面的处理之后,我们axios.xxx().then((res)=>{…})的res就为响应数据的data,其中errCode和errDesc就被处理掉了。

相关文章:

Axios学习笔记

Axios简介 axios前端异步请求库类似JQuery ajax技术, ajax用来在页面发起异步请求到后端服务,并将后端服务响应数据渲染到页面上, jquery推荐ajax技术,但vue里面并不推荐在使用jquery框架,vue推荐使用axios异步请求库。…...

Langchain学习笔记(十一):Chain构建与组合技巧

注:本文是Langchain框架的学习笔记;不是教程!不是教程!内容可能有所疏漏,欢迎交流指正。后续将持续更新学习笔记,分享我的学习心得和实践经验。 前言 在LangChain的发展过程中,API设计经历了重…...

【判断既约分数】2022-4-3

缘由既约分数&#xff0c;除了辗转相除法-编程语言-CSDN问答 void 判断既约分数() {int a 1, b 2020, aa b, y 2, gs 0;while (aa){while (a < b){while (y < a && y < aa)if (a%y 0 && aa%y 0)a, y 2;elsey;if (a < b)gs; else;a, y 2;…...

Windows平台RTSP/RTMP播放器C#接入详解

大牛直播SDK在Windows平台下的RTSP、RTMP播放器模块&#xff0c;基于自研高性能内核&#xff0c;具备极高的稳定性与行业领先的超低延迟表现。相比传统基于FFmpeg或VLC的播放器实现&#xff0c;SmartPlayer不仅支持RTSP TCP/UDP自动切换、401鉴权、断网重连等网络复杂场景自适应…...

深圳SMT贴片工艺优化关键步骤

内容概要 深圳SMT贴片工艺优化作为现代电子制造的核心环节&#xff0c;聚焦于提升生产精度与稳定性。其技术框架围绕三大核心维度展开&#xff1a;温度动态调控、设备协同适配与工艺缺陷预判。通过精密温度曲线控制系统&#xff0c;实现回流焊环节的热能梯度精准匹配&#xff…...

从 JDK 8 到 JDK 17:Swagger 升级迁移指南

点击上方“程序猿技术大咖”&#xff0c;关注并选择“设为星标” 回复“加群”获取入群讨论资格&#xff01; 随着 Java 生态向 JDK 17 及 Jakarta EE 的演进&#xff0c;许多项目面临从 JDK 8 升级的挑战&#xff0c;其中 Swagger&#xff08;API 文档工具&#xff09;的兼容性…...

配置git命令缩写

以下是 Git 命令缩写的配置方法及常用方案&#xff0c;适用于 Linux/macOS/Windows 系统&#xff1a; &#x1f527; 一、配置方法 1. 命令行设置&#xff08;推荐&#xff09; # 基础命令缩写 git config --global alias.st status git config --global alias.co che…...

Redis 缓存问题及其解决方案

1. 缓存雪崩 概念&#xff1a;缓存雪崩是指在缓存层出现大范围缓存失效或缓存服务器宕机的情况下&#xff0c;大量请求直接打到数据库&#xff0c;导致数据库压力骤增&#xff0c;甚至可能引发数据库宕机。 影响&#xff1a;缓存雪崩会导致系统性能急剧下降&#xff0c;甚至导…...

使用 Coze 工作流一键生成抖音书单视频:全流程拆解与技术实现

使用 Coze 工作流一键生成抖音书单视频&#xff1a;全流程拆解与技术实现&#xff08;提供工作流&#xff09; 摘要&#xff1a;本文基于一段关于使用 Coze 平台构建抖音爆火书单视频的详细讲解&#xff0c;总结出一套完整的 AI 视频自动化制作流程。内容涵盖从思路拆解、节点配…...

【发布实录】云原生+AI,助力企业全球化业务创新

5 月 22 日&#xff0c;在最新一期阿里云「飞天发布时刻」&#xff0c;阿里云云原生应用平台产品负责人李国强重磅揭晓面向 AI 场景的云原生产品体系升级&#xff0c;通过弹性智能的一体化架构、开箱即用的云原生 AI 能力&#xff0c;为中国企业出海提供新一代技术引擎。 发布会…...

vue中的派发事件与广播事件,及广播事件应用于哪些场景和一个表单验证例子

在 Vue 2.X 中&#xff0c;$dispatch 和 $broadcast 方法已经被废弃。官方认为基于组件树结构的事件流方式难以理解&#xff0c;并且在组件结构扩展时容易变得脆弱。因此&#xff0c;Vue 2.X 推荐使用其他方式来实现组件间的通信&#xff0c;例如通过 $emit 和 $on 方法&#x…...

DeepSeek 赋能智能养老:情感陪伴机器人的温暖革新

目录 一、引言二、智能养老情感陪伴机器人的市场现状与需求2.1 市场现状2.2 老年人情感陪伴需求分析 三、DeepSeek 技术详解3.1 DeepSeek 的技术特点3.2 与其他类似技术的对比优势 四、DeepSeek 在智能养老情感陪伴机器人中的具体应用4.1 自然语言处理与对话交互4.2 情感识别与…...

LabVIEW主轴故障诊断案例

LabVIEW 开发主轴机械状态识别与故障诊断系统&#xff0c;适配工业场景主轴振动监测需求。通过整合品牌硬件与软件算法&#xff0c;实现从信号采集到故障定位的全流程自动化&#xff0c;为设备维护提供数据支撑&#xff0c;提升数控机床运行可靠性。 ​ 面向精密制造企业数控机…...

gRPC 的四种通信模式完整示例

gRPC 的四种基本通信模式&#xff0c;包括完整的 .proto 文件定义和 Go 语言实现代码&#xff1a; 1. 简单 RPC (Unary RPC) - 请求/响应模式 客户端发送单个请求&#xff0c;服务端返回单个响应 calculator.proto protobuf syntax "proto3";package calculato…...

C#中Struct与IntPtr转换:实用扩展方法

C#中Struct与IntPtr转换&#xff1a;实用扩展方法 在 C# 编程的世界里&#xff0c;我们常常会遇到需要与非托管代码交互&#xff0c;或者进行一些底层内存操作的场景。这时&#xff0c;IntPtr类型就显得尤为重要&#xff0c;它可以表示一个指针或句柄&#xff0c;用来指向非托…...

Web安全:XSS、CSRF等常见漏洞及防御措施

Web安全&#xff1a;XSS、CSRF等常见漏洞及防御措施 一、XSS&#xff08;跨站脚本攻击&#xff09; 定义与原理 XSS攻击指攻击者将恶意脚本&#xff08;如JavaScript、HTML标签&#xff09;注入到Web页面中&#xff0c;当用户访问该页面时&#xff0c;脚本在浏览器端执行&…...

Java基础之数组(附带Comparator)

文章目录 基础概念可变参数组数组与ListComparator类1,基本概念2,使用Comparator的静态方法&#xff08;Java 8&#xff09;3,常用Comparator方法4,例子 排序与查找数组复制其他 基础概念 int[] anArray new int[10];只有创建对象时才会使用new关键字&#xff0c;所以数组是个…...

计算机组成与体系结构:补码数制二(Complementary Number Systems)

目录 4位二进制的减法 补码系统 &#x1f9e0;减基补码 名字解释&#xff1a; 减基补码有什么用&#xff1f; 计算方法 ❓为什么这样就能计算减基补码 &#x1f4a1; 原理揭示&#xff1a;按位减法&#xff0c;模拟总减法&#xff01; 那对于二进制呢&#xff1f;&…...

C#使用MindFusion.Diagramming框架绘制流程图(2):流程图示例

上一节我们初步介绍MindFusion.Diagramming框架 C#使用MindFusion.Diagramming框架绘制流程图(1):基础类型-CSDN博客 这里演示示例程序: 新建Windows窗体应用程序FlowDiagramDemo,将默认的Form1重命名为FormFlowDiagram. 右键FlowDiagramDemo管理NuGet程序包 输入MindFusio…...

【物联网-ModBus-RTU

物联网-ModBus-RTU ■ 优秀博主链接■ ModBus-RTU介绍■&#xff08;1&#xff09;帧结构■&#xff08;2&#xff09;查询功能码 0x03■&#xff08;3&#xff09;修改单个寄存器功能码 0x06■&#xff08;4&#xff09;Modbus RTU 串口收发数据分析 ■ 优秀博主链接 Modbus …...

Java应用10(客户端与服务器通信)

Java客户端与服务器通信 Java提供了多种方式来实现客户端与服务器之间的通信&#xff0c;下面我将介绍几种常见的方法&#xff1a; 1. 基于Socket的基本通信 服务器端代码 import java.io.*; import java.net.*;public class SimpleServer {public static void main(String…...

STM32学习之I2C(理论篇)

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…...

【C/C++】algorithm清单以及适用场景

文章目录 algorithm清单以及适用场景1 算法介绍1.1 分类1.2 非修改序列算法1.3 修改序列算法1.4 排序与堆算法1.5 集合操作算法&#xff08;要求有序&#xff09;1.5 查找算法1.6 二分查找算法&#xff08;有序区间&#xff09;1.7 去重与分区算法1.8 数值算法 <numeric>…...

Python_day47

作业&#xff1a;对比不同卷积层热图可视化的结果 一、不同卷积层的特征特性 卷积层类型特征类型特征抽象程度对输入的依赖程度低层卷积层&#xff08;如第 1 - 3 层&#xff09;边缘、纹理、颜色、简单形状等基础特征低高&#xff0c;直接与输入像素关联中层卷积层&#xff08…...

如何在mac上安装podman

安装 Podman 在 macOS 上 在 macOS 上安装 Podman 需要使用 Podman 的桌面客户端工具 Podman Desktop 或通过 Homebrew 安装命令行工具。 使用 Homebrew 安装 Podman&#xff1a; (base) ninjamacninjamacdeMacBook-Air shell % brew install podman > Auto-updating Hom…...

小黑一层层削苹果皮式大模型应用探索:langchain中智能体思考和执行工具的demo

引言 小黑黑通过探索langchain源码&#xff0c;设计了一个关于agent使用工具的一个简化版小demo&#xff08;代码可以跑通&#xff09;&#xff0c;主要流程&#xff1a; 1.问题输入给大模型。 2.大模型进行思考&#xff0c;输出需要执行的action和相关思考信息。 3.通过代理&…...

CppCon 2015 学习:Intro to the C++ Object Model

这段代码展示了使用 make 工具来编译 C 程序的简单过程。 代码和步骤解析&#xff1a; C 代码&#xff08;intro.cpp&#xff09;&#xff1a;#include <iostream> int main() { std::cout<<"hello world\n"; } 这是一个简单的 C 程序&#xff0c;它包…...

Go 语言中的 make 函数详解

Go 语言中的 make 函数详解 make 是 Go 语言中的一个​​内置函数​​&#xff0c;用于​​初始化切片&#xff08;slice&#xff09;、映射&#xff08;map&#xff09;和通道&#xff08;channel&#xff09;​​这些引用类型。这些类型必须在使用前通过 make 初始化&#x…...

阿里云ACP云计算备考笔记 (4)——企业应用服务

目录 第一章 企业应用概览 第二章 云解析 1、云解析基本概念 2、域名管理流程 3、云解析记录类型 4、域名管理 ① 开启注册局安全锁 ② 域名赎回 第二章 内容分发网络CDN 1、CDN概念 2、使用CDN前后对比 3、使用CDN的优势 4、阿里云CDN的优势 5、配置网页性能优化…...

用 NGINX 构建高效 SMTP 代理`ngx_mail_smtp_module`

一、模块定位与作用 协议代理 NGINX 监听指定端口&#xff08;如 25、587、465 等&#xff09;&#xff0c;接收客户端的 SMTP 会话请求。代理层在会话中透明转发客户端的 EHLO、MAIL FROM、RCPT TO、DATA 等命令到后端 MTA。 认证控制 通过 smtp_auth 指令指定允许的 SASL 认…...