学习笔记-优化问题

news2024/9/22 23:31:35

目录

一、目前的问题

1、axios

2、跨域问题

3. 路由安全

二、解决问题

1. 跨域问题

2. 优化URL

devServer

1. 配置 devServer

2. 修改请求路径

3. 重启 vue

4. 测试

5. pathRewrite

6. 重启

7. 测试

3. 优化 res.data

4. 判断状态码

5. 引入axios

1. 创建自定义 axios 

2. 挂载自定义的axios

3. 使用自定义 axios 

4. 测试

6. 全局路由守卫

1. 添加路由守卫

 2. 登录成功后跳转

3. 智能跳转


一、目前的问题

1、axios

1. axios 请求路径的 url 太长了 

2. 请求的 URL 写死的,如果 IP 或者端口需要更改,所有的请求URL都需要修改,比较麻烦

3. axios 获取的数据需要 res.data 才可以,优化为可以直接调用

4. 后端返回的状态有很多,比如400,403,404,500等,这些都需要进行判断,请求数据的页面有多个的话,比如登录页面,注册页面,都需要判断返回的状态,所以需要统一进行判断

5. 在需要用到 axios 的页面都要引入一下 axios,不方便,可不可以只引入一次,全局可用?

2、跨域问题

前端请求的 IP 或端口和后端服务器的 IP 或端口不一致就会出现跨域问题

1. 后端解决:添加 CorsOrigin 注解

2. 前端解决:vue 或者nginx

3. 路由安全

现在的路由跳转可以直接在游览器输入路由的名字进行跳转,这样不够安全

应该是在进入主页面之前先登录,登录成功后才可以跳转到主页面

二、解决问题

1. 跨域问题

2. 优化URL

使用vue 的代理转发解决跨域问题

devServer

1. 配置 devServer

vue 的配置文件

2. 修改请求路径

3. 重启 vue

修改了 vue 的配置文件就需要重新启动一下

4. 测试

可以看到,请求路径多了一个  api ,原本请求路径是没有 api 的,所以后端找不到请求的资源

5. pathRewrite

pathRewrite:这是一个对象,用于定义如何重写请求的URL路径。这里的 ^/api 被重写为 ' '(空字符串),意味着 /api 这部分路径在转发到目标服务器时会被移除。

6. 重启

7. 测试

可以看到请求成功了,请求路径还是有 api 是因为

原本的路径 http://localhost:8080/api/Admin/Login 在经过 pathRewrite 处理后,

会变成 http://localhost:8080/Admin/Login

然后再被代理到目标服务器 http://localhost:8081/mybatis_war_exploded/Admin/Login

虽然浏览器显示的请求路径仍然是 http://localhost:8080/api/Admin/Login,实际到达服务器的请求路径是 http://localhost:8081/mybatis_war_exploded/Admin/Login

3. 优化 res.data

4. 判断状态码

5. 引入axios

如果请求前缀修改了,那所有的请求路径都需要修改,所以,可不可以写一个公共的方法,baseURL ,只需要在公共方法里修改,所有使用这个前缀的URL都会生效

1. 创建自定义 axios 

2. 挂载自定义的axios

那么挂载到哪里可以在全局使用?main.js

3. 使用自定义 axios 

删除在页面中引用的 axios

响应拦截器返回的是 res.data ,所以这里可以直接使用 res.xxx,这里的 res = res.data

4. 测试

6. 全局路由守卫

1. 添加路由守卫

在路由器配置文件添加路由守卫

测试

当访问主页面的时候,就会直接提示先登录,然后跳转到登录界面

 2. 登录成功后跳转

当登录成功后自动跳转到主页面,如果已经登录,可以直接跳转到主页面

判断是否登录成功

测试

3. 智能跳转

例如:在没登陆之前,在地址栏输入路径跳转到其他组件,此时会先登录,登录成功后自动跳转到之前输入的路径

/**
 * 路由前置守卫,用于在路由跳转之前进行拦截判断
 * @param {Object} to - 将要进入的目标路由对象
 * @param {Object} from - 当前的路由对象
 * @param {Function} next - 前进函数,用于执行下一个路由切换
 */
router.beforeEach((to, from, next) => {
    console.log("to:", to, "from:", from, "next:", next)

    // 白名单
    var whiteList = ["/login", "/register"]
    // 判断要访问的组件是否在白名单中
    var index = whiteList.indexOf(to.path)
    if (index != -1) {
        // 如果在白名单中,直接跳转
        next();
    } else {
        // 从本地存储取出账号信息,判断是否登录成功
        if (localStorage.getItem("account") != null) {

            next();
        } else {
            alert("请先登录")
            localStorage.setItem("redirect",to.fullPath);   // 保存目标路由的完整路径
            next("/login")  // 跳转到登录组件,使用 router.push()方法跳转,需要引入路由器
        }
    }

})

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

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

相关文章

【C++】2.C++入门(2)

文章目录 6.引用6.1 引用概念6.2 引用特性6.3 使用场景6.4 const引用(常引用)6.5 引用和指针的区别 7.inline7.1inline代码举例:7.2inline代码错误示范7.3实现一个ADD宏函数的常见问题: 8.nullptr 6.引用 6.1 引用概念 引用不是…

Yolov8在RK3588上进行自定义目标检测(三)

参考 Yolov8在RK3588上进行自定义目标检测(一) Yolov8在RK3588上进行自定义目标检测(二) best.onnx转yolov8.rknn onnx转rknn需要用到rknn-toolkit2,这个工具暂时不支持windows,所以我们移步linux,我用的是虚拟机创建的ubuntu20.4的系统&a…

JS+H5美观的带搜索的博客文章列表(可搜索多个参数)

实现 美观的界面(电脑、手机端界面正常使用)多参数搜索(文章标题,文章简介,文章发布时间等)文章链接跳转 效果图 手机端 电脑端 搜索实现 搜索功能实现解释 定义文章数据: 文章数据保存在一个 JavaScri…

评价指标--深度学习

目录 1分类任务1.1 二分类1.1.1 含义介绍1.1.2 指标 1.2多分类 2图像分割2.1 常用指标2.2 具体含义2.3 代码实现 1分类任务 1.1 二分类 混淆矩阵 1.1.1 含义介绍 TP:预测为真所以是Positive,预测结果和真实结果一致所以为TrueTN:预测为假…

【Python 逆向滑块】(实战六)逆向滑块,并实现用Python+Node.js 生成滑块、识别滑块、验证滑块、发送短信

逆向日期:2024.08.04 使用工具:Python,Node.js 本章知识:逆向【NECaptchaValidate】参数并成功发送短信 文章难度:中等(没耐心的请离开) 文章全程已做去敏处理!!&#xf…

【SpringBoot】 定时任务之任务执行和调度及使用指南

【SpringBoot】 定时任务之任务执行和调度及使用指南 Spring框架分别通过TaskExecutor和TaskScheduler接口为任务的异步执行和调度提供了抽象。Spring还提供了支持应用程序服务器环境中的线程池或CommonJ委托的那些接口的实现。最终,在公共接口后面使用这些实现&…

POE服务机器人-快速开始

快速开始 POE与服务机器人部署服务机器人与poe集成迭代你的机器人其他 POE与服务机器人 在本快速入门指南中,我们将使用 Python 构建一个机器人服务器,然后将其与 Poe 集成。一旦您创建了由您的服务器驱动的 Poe 机器人,任何 Poe 用户都可以…

解密XXE漏洞:原理剖析、复现与代码审计实战

在网络安全领域,XML外部实体(XXE)漏洞因其隐蔽性和危害性而备受关注。随着企业对XML技术的广泛应用,XXE漏洞也逐渐成为攻击者们利用的重点目标。一个看似无害的XML文件,可能成为攻击者入侵系统的利器。因此&#xff0c…

R语言统计分析——描述性统计

参考资料&#xff1a;R语言实战【第2版】 1、整体统计 对于R语言基础安装&#xff0c;可以使用summary()函数来获取描述性统计量。summary()函数提供了最小值、最大值、四分位数、中位数和算术平均数&#xff0c;以及因子向量和逻辑向量的频数统计。 myvars<-c("mpg&…

JRT多维取数据三件套

今天补齐DolerData判断数据是否存在的API&#xff0c;即M的$d。 兜兜转转&#xff0c;经过近十年探索&#xff0c;3年的酝酿&#xff0c;10个月的开发&#xff0c;JRT终于集齐多维取数据三件套。分别是$get,$listget,$data。通过多维取数据的支持&#xff0c;JRT特别适合医疗数…

7.怎么配置一个axios来拦截前后端请求

首先创建一个axios.js文件 导入我们所需要的依赖 import axios from "axios"; import Element from element-ui import router from "./router"; 设置请求头和它的类型和地址 注意先注释这个url,还没有解决跨域问题,不然会出现跨域 // axios.defaults.…

6-5 多输入多输出通道

虽然我们在前面描述了构成每个图像的多个通道和多层卷积层。例如彩色图像具有标准的RGB通道来代表红、绿和蓝。 但是到目前为止&#xff0c;我们仅展示了单个输入和单个输出通道的简化例子。 这使得我们可以将输入、卷积核和输出看作二维张量。 当我们添加通道时&#xff0c;我…

搭建高可用OpenStack(Queen版)集群(一)之架构环境准备

一、搭建高可用OpenStack&#xff08;Queen版&#xff09;集群之架构环境准备 一、架构设计 二、初始化基础环境 1、管理节点创建密钥对&#xff08;方便传输数据&#xff09; 所有控制节点操作 # ssh-keygen #一路回车即可 Generating public/private rsa key pair. Enter f…

MTK Android12 分析system_app允许vendor_mtk_audiohal_prop SELinux 权限问题

本文将尝试分析&#xff0c;在开发 Android 12 MTK 平台时遇到了 vendor_mtk_audiohal_prop 属性相关的 SELinux 权限问题。包括如何修改 SELinux 策略以允许 system_app 设置 vendor_mtk_audiohal_prop 属性。 问题描述 希望允许 system_app 设置 vendor_mtk_audiohal_prop 属…

SpringBoot+Vue图书(图书借阅)管理系统-附项目源码与配套文档

摘 要 本论文阐述了一套先进的图书管理系统的设计与实现&#xff0c;该系统采用Java语言&#xff0c;结合现代Web开发框架和技术&#xff0c;旨在为图书馆提供高效、灵活且用户友好的资源管理解决方案。系统利用Spring Boot框架为核心&#xff0c;整合MyBatis ORM工具&#…

基于 systemc-2.3.1的virtual device 接入 qemu-arm

1&#xff0c;下载systemc-2.3.1 下载网址&#xff1a; SystemC Files $ wget https://www.accellera.org/images/downloads/standards/systemc/systemc-2.3.1.tgz 2&#xff0c;编译安装 systemc-2.3.1 tar zxf systemc-2.3.1.tgz cd systemc-2.3.1/ export CXXg mkdir bu…

PS 2024 百种常用插件下载安装教程【免费使用,先到先得】

文章目录 软件介绍软件下载安装步骤 专栏推荐&#xff1a; 超多精品软件&#xff08;持续更新中…&#xff09; 软件推荐&#xff1a; PS 2024 PR 2024 软件介绍 PS常用插件 此软件整合了市面近百款ps处理插件&#xff0c;可实现&#xff1a;一键制作背景&#xff0c;一键抠图…

linux安装docker(实操教程)

一、安装前准备工作 1.查看服务器操作系统版本 2.查看服务器的操作系统内核版本 3.安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2如果不是root用户登陆的系统&#xff0c;需要手动输入sudo -i切换到root帐户 4.设置阿里云docker-ce镜像源 yum-c…

美国失业率大幅上升,增加九月份降息利率的可能性

令人失望的是&#xff0c;美国7月份经济增加了11.4万个工作岗位&#xff0c;低于预期的17.5万个和6月的17.9万个。平均小时工资持续下降&#xff0c;但失业率升至4.3%。美元继续走低&#xff0c;美国国债也在下跌&#xff0c;而黄金则获得了提振。 7月份的非农业支付数据令人失…

ST语言支持包下载安装(VS CODE)

VSCODE是微软提供的代码编辑器&#xff0c;支持非常多的语言。 1、VSCODE下载 2、ST语言支持包 3、ST语言支持包下载 4、ST语言 。。