Axios 封装网络请求
1 简介
通过Axios的请求拦截器和响应拦截器实现登录拦截,参数封装。
注意:前提是你的vue已经安装了Axios。
附安装代码:
npm install axios
2 封装代码
2.1 utils文件夹下创建 request.js
// 网络请求方法
import axios from 'axios'
import router from '@/router'// 自定义axios对象 (ajax对象就是axios)
const ajax = axios.create({baseURL: 'http://请求IP地址:端口/api', // 服务器基地址headers: {'Content-Type': 'application/json; charset=utf-8'},timeout: 10000
})// 添加请求拦截器,判断token是否过期
// 请求拦截器
// 设置axios请求头加入token
ajax.interceptors.request.use(config => {// 判断是否有token(是否已经登录),不是请求token,就对请求添加tokenif (localStorage.getItem('token') && config.url !== 'admin/auth/token') {//在请求头加入token,名字要和后端接收请求头的token名字一样config.headers.authorization = localStorage.getItem('token')}// 根据请求方法自动选择传递参数的方式// get delete 传递params参数// post,put,patch 传递data参数if (config.method === 'post' || config.method === 'put' || config.method === 'patch') {config.data = config.params}return config},error => {return Promise.reject(error)})// 响应拦截器
ajax.interceptors.response.use(response => {// 判断是否登录成功if (response.data.code === 0) {console.log(response.data.msg || '请求出错,稍后重试')}return response.data},error => {// Token过期,请求响应 401 时,用户手动获取token,强制跳转登录页面if (error.response && error.response.status === 401) {//清除tokenlocalStorage.removeItem('token')console.log('登录失效,请重新登录')//跳转router.push('/login')} else {console.log('服务器连接异常')}return Promise.reject(error)})export default ajax // 导出一个axios函数
2.2 api文件夹下创建index.js
请求的统一出口。
// 登录为例,获取token,获取账户信息
import {recommendToken, authInfo} from './login'export default {recommendToken,authInfo
}
2.3 api文件夹下创建login.js
存放所有的登录请求
// 封装发起的请求
import request from '@/utils/request'// 封装网络请求方法
export const recommendToken = params => request({url: 'admin/auth/token',method: 'POST',params
})export const authInfo = param => request({url: 'admin/auth/AuthInfo',method: 'GET',param
})
3 使用
api.recommendToken({userName: this.username,password: this.password
}).then(res => {// 请求数据处理const token = res.data.accessToken// 存储tokenlocalStorage.setItem('token', 'Bearer ' + token)// 跳转到首页this.$router.push('/')
}).catch(error => {// 错误捕获console.log('服务器错误:' + error.message)
}).finally(() => {})api.authInfo().then(res => {// 请求完成后逻辑……
}).catch(error => {// 错误捕获console.log(error)
})
相关文章:
Axios 封装网络请求
1 简介 通过Axios的请求拦截器和响应拦截器实现登录拦截,参数封装。 注意:前提是你的vue已经安装了Axios。 附安装代码: npm install axios 2 封装代码 2.1 utils文件夹下创建 request.js // 网络请求方法 import axios from axios impor…...

LeetCode 面试经典150题 190.颠倒二进制位
复习知识:正数的原码、反码、补码相同,负数的反码在其原码的基础上, 符号位不变,其余各个位取反,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后1 (即在反码的基础上1)。 题目:颠倒给定的 32 位无符号…...

vulhub搭建漏洞环境docker-compose up -d命令执行报错以及解决方法汇总
在利用vulhub靶场搭建环境进行漏洞复现时,我们通常要使用这一步命令: docker-compose up -d 但是经常报错,今天我们来说几个常见的报错以及解决方法: 1.报错提示: ERROR: Couldnt connect to Docker daemon at httpdoc…...
C++ 简介
目录 面向对象程序设计 标准库 ANSI 标准 学习 C C 的使用 标准化 C 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。 C 被认为是一种中级语言,它综合了高级语言和低级语言的特点…...

shardingjdbc分库分表原理
一 Mysql的瓶颈 二 解决方案 三 hash环算法 四 雪花算法...
C++泛型编程:模版
引言 泛型编程(Generic Programming)是一种编程范式,允许编写与类型无关的代码,从而使程序更加灵活和可重用。在C中,泛型编程主要通过模板(Templates)来实现。模板使得我们可以编写通用…...
一道涉及 Go 中的并发安全和数据竞态(Race Condition)控制的难题
这是一道涉及 Go 中的并发安全和数据竞态(Race Condition)控制的难题。 问题描述: 你需要实现一个并发安全的计数器 SafeCounter,该计数器允许多个 Goroutine 同时对其进行读写操作。计数器会存储每个键的计数值。 具体要求&am…...
如何降低H5商城系统的开发成本
前言 H5商城系统通过多种策略来降低开发成本。以下是对这些策略的详细介绍: 一、选择合适的开发平台 原生开发与跨平台开发:原生开发使用HTML5、CSS3和JavaScript等Web技术,虽然性能更佳、用户体验更好,但开发成本相对较高。而…...

为什么越来越多的网工运维转行网络安全?_idc运维转网络安全工程师_系统运维转行网安
最近越来越多的网工运维小伙伴都在吐槽:干网工、运维多年,薪资还是5.6K,技术也遇瓶颈上不去,考虑转岗或者转行。其中大部分的网工运维小伙伴们纷纷瞄准了高薪高前景的网络安全工程师岗位 网络安全是怎样的岗位? 网络安…...

【TabBar嵌套Navigation案例-产品推荐页面-UICollectionView-结合xib使用 Objective-C语言】
一、接下来,我们来说这个产品推荐页面 1.首先呢,它是一个CollectionViewController,当我点击这个产品推荐的时候, 这个Cell的时候,我要跳到一个CollectionViewController, 所以呢,我们需要先找到产品推荐,然后给它去添加一个targetVC,然后给它push到一个产品推荐的页面…...
java.nio.ByteBuffer的 capacity, limit, position, mark
java.nio.ByteBuffer的 capacity, limit, position, mark Capacity(容量) 定义:缓冲区的总容量,即缓冲区中可以容纳的元素的数量。这个容量在缓冲区创建时被设定,并且之后不能被改变。 用途:它定义了缓冲区…...

握手传输 状态机序列检测(记忆科技笔试题)_2024年9月2日
发送模块循环发送0-7,在每个数据传输完成后,间隔5个clk,发送下一个 插入寄存器打拍处理,可以在不同的时钟周期内对信号进行同步,从而减少亚稳态的风险。 记忆科技笔试题:检测出11011在下一个时钟周期输出…...

电商跨境电商商城系统/网上商城接口/电商数据接口详情
电商API接口背景:电商运营中,数据分析这项工作越来越重要,许多品牌方也越来越热衷去做电商数据分析。不过,全面的数据该如何获取呢,此时,电商数据接口的重要性便凸显出来了。 电商API数据接口主要有以下特…...

openFrameworks_如何使用ofxXmlSettings和ofxGui来创建识别界面
效果图: 代码及详解 1.添加两个插件的头文件: #include "ofxGui.h" #include "ofxXmlSettings/src/ofxXmlSettings.h" 2.添加GUI部分,然后在.h声明右边的openframeworks的UI部分,包括面板ofxPanel,按钮ofx…...

180多个GIS地理空间定义术语中英文对照配图
主动传感器(Active Sensors): [遥感]主动传感器照亮其目标,并测量返回到传感器的反射后向散射。 邻接(Adjacency): [几何]邻接发生在两个对象共享同一边界,并且与公共边或顶点相邻…...

Vue(14)——组合式API①
setup 特点:执行实际比beforeCreate还要早,并且获取不到this <script> export default{setup(){console.log(setup函数);},beforeCreate(){console.log(beforeCreate函数);} } </script> 在setup函数中提供的数据和方法,想要在…...

【图像检索】基于颜色模型的图像内容检索,matlab实现
博主简介:matlab图像代码项目合作(扣扣:3249726188) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于颜色模型的图像内容检索,用matlab实现。 一、案例背景和算法介绍 这…...
看过来——量子计算中一个神奇符号的解释
量子计算中一个神奇符号是 H ⊗ n \mathcal{H}^{\otimes n} H⊗n 它代表什么呢, 往下看 H ⊗ n \mathcal{H}^{\otimes n} H⊗n 通常在量子力学中表示 n次张量积的希尔伯特空间。 H \mathcal{H} H 表示一个希尔伯特空间,这是量子力学中描述量子态的空间&…...

传输层 IV(TCP协议——流量控制、拥塞控制)【★★★★】
(★★)代表非常重要的知识点,(★)代表重要的知识点。 一、TCP 流量控制(★★) 1. 利用滑动窗口实现流量控制 一般说来,我们总是希望数据传输得更快一些。但如果发送方把数据发送得…...

Java设计模式全面解析
23大设计模式(即软件设计中的24种常用设计模式)源自《设计模式:可复用面向对象软件的基础》一书,由四位作者(Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides)提出,通常也被称为“Go…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...

Axure 下拉框联动
实现选省、选完省之后选对应省份下的市区...