第47章 后端管理首页与Axios拦截守卫原理
1 404全局拦截
1.1 定义布局页:src\views\ 404View.vue
<template>
<el-container>
<el-main>
</el-main>
<el-footer>
<h1>大人,你要找的页面离家出走了!小的正在努力寻找中…</h1>
</el-footer>
</el-container>
</template>
<script>
</script>
<style scoped lang="scss">
.el-container {
margin: 0px;
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
background: url(../assets/404.png) no-repeat top left;
background-repeat: no-repeat;
background-size: cover;
width: 100%;
height: 100%;
}
.el-main {
height: 75vh; //必须定义:"height"为:75vh,否则主区域的高度不能达到100%;如果大于75vh整页的调度将超过100%。
}
.el-footer {
color: #FFFFFF;
height: 25vh; //必须定义:"height"为:25vh,否则主区域的高度不能达到100%;如果大于25vh整页的调度将超过100%。
}
</style>
1.2 重构路由:src\router\index.js
const routes = [{
path: '/:catch(.*)',
name: '404',
component: () => import('../views/404View.vue')
},
{
path: '/Login',
name: '登录',
component: () => import('../views/LoginView.vue')
},
在Vue3中不需定义任何的拦截守卫方法,只要完成上述定义即可实现404全局拦截,在程序执行后在地址栏中输入任何1个当前项目中不存在的页面就会自动跳转到404页面。
2 端管理首页与Axios拦截守卫原理
2.1 重构端管理首页:src\views\WelcomeView.vue
<template>
<h1>WelcomeView-----Amin</h1>
</template>
<script>
import axios from 'axios';
export default {
data() {
return {};
},
methods: {
async getHomeAdminIndex() {
axios.get('https://localhost:7239/HomeAdmin/Index');
//console.log(res);
},
},
async mounted() {
//通过请求拦截器把Token令牌字符串添加到Header字典实例中,从而授权指定用户有权访问指定页面。
axios.interceptors.request.use(
config => {
if (localStorage.getItem('Token')) {
config.headers.Authorization = localStorage.getItem('Token');
}
return config;
},
error => {
return Promise.reject(error);
});
//通过应答拦截器所对应的状态码进行拦截后,跳转到指定页。
axios.interceptors.response.use(
(config) => {
return config;
},
async error => {
let statusErrorInfo = {
success: false,
message: "错误"
};
if (error.response?.status === 400) {
statusErrorInfo.message =
`${error.response?.status}:由于前端所发送的请求中有语法错误,服务器(后)端不能解析该请求或解析请求时产生错误,从而导致服务器(后)端已处理前端所发送的请求失败。`;
console.log(statusErrorInfo.message);
return await this.$router.replace(this.$route.query.redirect ? this.$route.query
.redirect : "/Login");
}
else if (error.response?.status === 401) {
statusErrorInfo.message =
`${error.response?.status}:由于用户未执行登录操作或Token令牌字符串已经过期,所以没有权限访问当前页面。`;
console.log(statusErrorInfo.message);
return await this.$router.replace(this.$route.query.redirect ? this.$route.query
.redirect : "/Login");
}
else if (error.response?.status === 403) {
statusErrorInfo.message = `${error.response?.status}:该指定用户虽然已经执行登录操作,但该用户没有访问当前页面的权限。`;
console.log(statusErrorInfo.message);
return await this.$router.replace(this.$route.query.redirect ? this.$route.query
.redirect : "/Login");
}
else if (error.response?.status === 422) {
statusErrorInfo.message =
`${error.response?.status}:由于前端所发送的请求中所携带的参数实例与服务器(后)端中对应的API方法所需要的参数实例不匹配,从而导致服务器(后)端已处理前端所发送的请求失败(response)`;
console.log(statusErrorInfo.message);
return await this.$router.replace(this.$route.query.redirect ? this.$route.query
.redirect : "/Login");
}
else if (error.response.status >= 500) {
statusErrorInfo.message =
`${error.response?.status}:服务器(后)端中对应的API方法在处理前端所发送的请求时产生错误,服务器(后)端API方法未能完成前端所发送的请求,从而导致服务器(后)端已处理前端所发送的请求失败(response)。`;
console.log(statusErrorInfo.message);
return await this.$router.replace(this.$route.query.redirect ? this.$route.query
.redirect : "/Login");
}
else if (error.response.status >= 505) {
statusErrorInfo.message =
`${error.response?.status}:由于服务器(后)端不支持前端所发送的请求的HTTP协议的版本,从而导致服务器(后)端已处理前端所发送的请求失败(response)。`;
console.log(statusErrorInfo.message);
return await this.$router.replace(this.$route.query.redirect ? this.$route.query
.redirect : "/Login");
}
return Promise.reject(error);
}
);
await this.getHomeAdminIndex();
},
};
</script>

2.2 调试



对以上功能更为具体实现和注释见:230220_009shopvue(后端管理首页与Axios拦截守卫原理)。
相关文章:
第47章 后端管理首页与Axios拦截守卫原理
1 404全局拦截 1.1 定义布局页:src\views\ 404View.vue <template> <el-container> <el-main> </el-main> <el-footer> <h1>大人,你要找的页面离家出走了!小的正在努力寻找中…</h1> </el-fo…...
【前端】小程序开发入门:安装开发工具、目录结构与项目配置
文章目录前期准备目录结构app.jsonpageswindow其他前期准备 开发小程序要先申请一个对应的AppID:微信小程序 (qq.com) 微信官方小程序开发文档:微信开放文档 (qq.com) 然后安装一个小程序开发工具: 选择稳定版: 安装后打开&…...
Java反序列化漏洞——CommonsBeanutils1链分析
一、了解Apache Commons BeanutilsApache Commons Beanutils 是 Apache Commons 工具集下的另一个项目,它提供了对普通Java类对象(也称为JavaBean)的一些操作方法。在Java中,有很多class的定义都符合这样的规范若干private实例字段…...
三菱PLC的MC协议配置说明
三菱PLC的MC协议配置说明先说一下弱智的踩坑记录详细配置过程1、三菱Q02H CPUQJ71E71-100以太网模块设置MC协议1.1 PLC编程线连接与编程线驱动安装1.2 PLC通讯测试1.3 PLC MC协议设置1.4 PLC断点重启1.5 网络调试助手测试2、三菱Q03UDE CPU内置以太网设置MC协议2.1 PLC编程线连…...
Python基础复习总结
文章目录Python基础复习Python的下载与安装标识符关键字模块条件、循环语句if elif elsefor循环while循环成员测试Python中的数据类型序列列表 list元组 tuple集合 set字典 dictPython关系运算算术运算符比较运算符逻辑运算符位运算符赋值运算符运算符优先级字符串表示字符串字…...
【Linux操作系统】【综合实验五 网络管理与通信】
文章目录一、实验目的二、实验要求三、实验内容四、实验报告要求一、实验目的 要求了解和熟悉Linux网络客户/服务器管理模式(client/server)与网络环境的配置;熟悉网络远程登录模式与TCP/IP常见终端命令的使用;学会使用在线通信与…...
Qt下实现不规则形状窗口显示
文章目录前言一、资源文件的添加二、初始化窗口三、重写paintEvent函数实现窗口重绘四、重写QMouseEvent相关函数实现不规则窗口的移动及关闭五、demo完整代码六、下载链接总结前言 本文实现了Qt下显示两个不规则形状的窗口demo,其中有Qt的窗口对话框和QPaintEvent…...
使用ribbon实现负载均衡
1.新建两个provider:springcloud-provider-dept-8002 2. 配置跟8001一样 整合 Ribbon 由上述可知,Ribbon 是需要集成在消费端的 所以在消费端 : springcloud-03-consumer-dept-8082 进行修改 在 POM 文件中添加 Ribbon、Eureka 依赖 <!--…...
从页面仔到工程师,前端到底在发挥什么价值
玉伯在前端圈子里摸爬滚打十几年,他对前端价值的理解是什么样的?在他眼里,前端到底是一个怎样的岗位?我们带着这样的问题向他提问。支付宝体验技术部是前端同学最希望加入的团队之一,玉伯带领这个团队做出诸多创新产品…...
Java程序员进阶宝典,让你学习面试无忧!
心净则明,心诚则灵如果你想要一个月速成程序员,那么这篇文章不适合,如果你仅想要在IT圈“耍酷”,那你也不需要研读,如果你执着询问“退化”成为一名程序猿有啥捷径,那我只能告诉你,此路不通!不可…...
Hadoop HDFS的主要架构与读写文件
一、Hadoop HDFS的架构 HDFS:Hadoop Distributed File System,分布式文件系统 1,NameNode 存储文件的metadata,运行时所有数据都保存到内存,整个HDFS可存储的文件数受限于NameNode的内存大小一个Block在…...
面试题练习第五篇
面试题第五篇1. 说说React生命周期中有哪些坑?如何避免?2. 说说Real diff算法是怎么运作的?3. 调和阶段setState干了什么?4. 说说redux的实现原理是什么,写出核心代码?5. React合成事件的原理?6…...
hadoop02【尚硅谷】
HDFS 大数据学习笔记 一、HDFS产出背景及定义 HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件&#x…...
Alist ——本地网盘管理器
Alist ——本地网盘管理器 一、下载工具 Alist https://github.com/alist-org/alist二、启动登录 进入下载好的文件中,在地址栏输入cmd进入命令行启动 进入命令行输入 alist start启动 记住密码,和端口进入浏览器 输入 :127.0.0.1:5244用…...
【白话科普】聊聊网络架构变革的关键——SDN
最近二狗子在网上冲浪的时候,不小心将 CDN 搜索成了 SDN,结果跳出来了一大堆相关的知识点。 好学的二狗子当然不会随随便便糊弄过去,于是认认真真学习了好久,终于了解了 SDN 是什么。 原来,SDN 的全称是 Software De…...
go gin学习记录4
环境 环境:mac m1,go version 1.17.2, goland, mysql 除了原生sql,和orm操作之外,go还有一类包,只用于生成sql,典型的如sqlbuilder,今天就来研究一下它。 安装sqlbuil…...
家政服务小程序实战开发教程015-填充用户信息
我们上一篇讲解了立即预约功能,存在的问题是,每次都需要用户填写联系信息。在我们前述篇章中已经介绍了用户注册的功能,在立即预约的时候我们需要把已经填写的用户信息提取出来,显示到表单对应的字段中。本篇我们就讲解一下如何提…...
python+selenium使用webdriver启动chrome出现闪退现象解决
这两天发现之前开发的爬虫程序出问题了:谷歌浏览器出现打开立即闪退的现象,代码未修改过,检查也没有任何问题! 查看chrome浏览器发现版本更新了 ↑(点击chrome浏览器右上角三个点,最下面帮助→Google Chr…...
新建idea项目
目录IDEA系列之创建各种项目 https://blog.csdn.net/LOVEQD123/article/details/105886077 idea 创建项目的三种方式 https://blog.csdn.net/weixin_50034122/article/details/118754521 创建空项目 https://blog.csdn.net/qq_44537956/article/details/123075134 创建 spri…...
Django框架之类视图
类视图 思考:一个视图,是否可以处理两种逻辑?比如get和post请求逻辑。 如何在一个视图中处理get和post请求 注册视图处理get和post请求 以函数的方式定义的视图称为函数视图,函数视图便于理解。但是遇到一个视图对应的路径提供…...
从YOLOv8到SpikeYOLO:在边缘设备上部署脉冲神经网络目标检测的完整实践指南
从YOLOv8到SpikeYOLO:边缘设备超低功耗目标检测实战手册 在无人机巡检、智能安防摄像头和可穿戴设备等边缘计算场景中,持续运行的目标检测系统常受限于电池容量与散热条件。传统卷积神经网络(CNN)如YOLOv8虽能实现实时检测&#x…...
嵌入式文件传输协议:Xmodem/Ymodem原理与应用实践
1. 嵌入式文件传输协议概述在工业控制、航天探测、物联网设备等嵌入式应用场景中,文件传输是最基础也最关键的通信需求之一。从简单的单片机固件升级,到复杂的卫星图像回传,都需要稳定可靠的文件传输机制作为支撑。作为一名嵌入式开发工程师&…...
Edge 浏览器:全面解析与深入体验
Edge 浏览器:全面解析与深入体验 引言 随着互联网技术的飞速发展,浏览器已经成为我们日常生活中不可或缺的工具。在众多浏览器中,Edge 浏览器凭借其出色的性能和丰富的功能,赢得了广大用户的青睐。本文将全面解析 Edge 浏览器的特点、功能以及用户体验,帮助您更好地了解…...
python cx_freeze
# 关于 PyInstaller,一位 Python 老手的随想 最近在整理一些旧项目,又用到了 PyInstaller 这个工具。说起来,它算是 Python 开发中一个既熟悉又容易被忽视的存在。很多开发者第一次接触它,往往是为了把写好的脚本发给不会装 Pytho…...
Harness Engineering入门基础教程(非常详细),从人类写码到Agent开发,看这篇就够了!
读完 OpenAI 关于 Harness Engineering 的文章后,我做了一份核心总结,并结合自己的项目写下了这些启发。 最近在团队里,我尝试借鉴 OpenAI 提出的 Harness Engineer 概念,探索一种新的开发模式。它的核心问题是:如果人…...
小程序开发首选免费源码网:全开源生态下的创新加速器
一、全开源免费源码:破解开发难题的“钥匙”1. 降低技术门槛,加速产品落地对于初创团队或个人开发者而言,全开源免费源码的价值在于其“开箱即用”的特性。以GitHub和码云(Gitee)为例,这两个全球最大的开源…...
电力系统短路故障分析与电压暂降特征研究:三相不对称短路及其MATLAB仿真分析
1.电力系统短路故障引起电压暂降 2.不对称短路故障分析 包括:共两份自编word+相应matlab模型 1.短路故障的发生频次以及不同类型短路故障严重程度,本文选取三类典型的不对称短路展开研究,包含单相接地短路、相间短路和两相接地短…...
终极指南:如何5分钟免费安装Fooocus AI图像生成软件
终极指南:如何5分钟免费安装Fooocus AI图像生成软件 【免费下载链接】Fooocus Focus on prompting and generating 项目地址: https://gitcode.com/GitHub_Trending/fo/Fooocus Fooocus是一款专注于提示词和图像生成的AI图像生成软件,它重新定义了…...
构建一个抗揍的 Go TCP 聊天服务:异常兜底与防御性编程实践
构建一个抗揍的 Go TCP 聊天服务:异常兜底与防御性编程实践 在用 Go 实现一个简单的 TCP 聊天室时,实现“上线、下线、广播、私聊”等功能并不难。但如果要把它放到公网,面对真实网络环境中的网络抖动、恶意攻击(如超长消息洪水、…...
三步搞定空洞骑士模组管理:Scarab让复杂依赖关系变得简单
三步搞定空洞骑士模组管理:Scarab让复杂依赖关系变得简单 【免费下载链接】Scarab An installer for Hollow Knight mods written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 还在为《空洞骑士》模组安装的各种技术难题而头疼吗&…...
