码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SpringBoot&Vue&EmementUI前后端分离整合、统一封装axios、跨域配置


    🧑‍💻作者名称:DaenCode
    🎤作者简介:CSDN实力新星,后端开发两年经验,曾担任甲方技术代表,业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开发。技术尚浅,闭关学习中······
    😎人生感悟:尝尽人生百味,方知世间冷暖。
    📖所属专栏:SpringBoot实战


    系列文章目录

    以下是专栏部分内容,更多内容请前往专栏查看!

    标题
    一文带你学会使用SpringBoot+Avue实现短信通知功能(含重要文件代码)
    一张思维导图带你学会Springboot创建全局异常、自定义异常
    一张思维导图带你打通SpringBoot自定义拦截器的思路
    28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈
    一张思维导图带你学会SpringBoot、Vue前后端分离项目线上部署
    一张流程图带你学会SpringBoot结合JWT实现登录功能
    一张思维导图带你学会使用SpringBoot中的Schedule定时发送邮件
    一张思维导图带你学会使用SpringBoot异步任务实现下单校验库存
    一张思维导图带你学会SpringBoot使用AOP实现日志管理功能

    在这里插入图片描述


    专栏推荐

    • 专门为Redis入门打造的专栏,包含Redis基础知识、基础命令、五大数据类型实战场景、key删除策略、内存淘汰机制、持久化机制、哨兵模式、主从复制、分布式锁等等内容。链接>>>>>>>>>《Redis从头学》
    • 专门为RabbitMQ入门打造的专栏,持续更新中。。。。。。。。链接>>>>>>>《图解RabbitMQ》

    文章目录

    • 系列文章目录
    • 专栏推荐
    • 🌟Vue项目创建
    • 🌟Vue整合ElementUI
    • 🌟统一封装request.js
    • 🌟跨域配置
    • 🌟写在最后

    🌟Vue项目创建

    1.进入到要创建项目的文件夹,目录输入CMD,打开黑白命令窗口。我的目录是在E:/VueWorkspacke。
    在这里插入图片描述
    2.输入vue ui打开vue项目管理web界面。
    在这里插入图片描述
    3.进入到红框的路径,进行项目创建。
    在这里插入图片描述
    4.点击在此创建项目,输入项目相关信息,并点击下一步
    在这里插入图片描述
    5.选择手动,并点击下一步。
    在这里插入图片描述
    6.选择加入的依赖,也可以后期项目中手动添加。
    在这里插入图片描述

    7.创建项目,不保存预设。
    在这里插入图片描述
    在这里插入图片描述

    8.创建成功后就可以在路径中看到项目。

    在这里插入图片描述

    🌟Vue整合ElementUI

    官网:ElementUI

    1.打开项目,终端执行命令安装emelentui。

    npm i element-ui -S
    
    • 1

    2.main.js中添加以下代码。

    //导入ElementUI
    import ElementUI from 'element-ui';
    import 'element-ui/lib/theme-chalk/index.css';
    //使用ElementUI
    Vue.use(ElementUI);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.package.json中的eslintConfig中的rules添加代码,不然启动时报错。

    "eslintConfig": {
        "root": true,
        "env": {
          "node": true
        },
        "extends": [
          "plugin:vue/essential",
          "eslint:recommended",
          "plugin:prettier/recommended"
        ],
        "parserOptions": {
          "parser": "@babel/eslint-parser"
        },
        "rules": {
        //只需要改动这里即可。
    	  "vue/multi-word-component-names": "off",
          "prettier/prettier": "off"
    	}
      },
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    4.效果验证。官网复制相关样式,这里复制一个按钮到HomeView.vue。

    <template>
      <div class="home">
        <img alt="Vue logo" src="../assets/logo.png" />
        <HelloWorld msg="Welcome to Your Vue.js App" />
    	<el-button type="warning">警告按钮el-button>
      div>
    template>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    5.启动项目,终端输入npm run serve
    在这里插入图片描述

    🌟统一封装request.js

    1.安装axios。npm i axios -S
    2.创建request.js文件,放到utils目录下,代码如下

    import axios from 'axios'
    
    const request = axios.create({
    	baseURL: 'http://localhost:8081',  // 注意!! 这里是全局统一加上了 后端接口前缀 前缀,后端必须进行跨域配置!
        timeout: 5000
    })
    
    // request 拦截器
    // 可以自请求发送前对请求做一些处理
    // 比如统一加token,对请求参数统一加密
    request.interceptors.request.use(config => {
        config.headers['Content-Type'] = 'application/json;charset=utf-8';
      
     // config.headers['token'] = user.token;  // 设置请求头
        return config
    }, error => {
        return Promise.reject(error)
    });
    
    // response 拦截器
    // 可以在接口响应后统一处理结果
    request.interceptors.response.use(
        response => {
            let res = response.data;
            // 如果是返回的文件
            if (response.config.responseType === 'blob') {
                return res
            }
            // 兼容服务端返回的字符串数据
            if (typeof res === 'string') {
                res = res ? JSON.parse(res) : res
            }
            return res;
        },
        error => {
            console.log('err' + error) // for debug
            return Promise.reject(error)
        }
    )
    
    
    export default request
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

    3.main.js中全局配置封装的request。

    import request from "./utils/request";
    Vue.prototype.request = request
    
    • 1
    • 2

    4.创建接口请求。

    methods: {
        submitForm() {
          this.$refs['elForm'].validate(valid => {
            if (valid) {
            	//后端接口
                this.request.post("/api/v1/redis/generate", this.formData).then(res => {
                if(res.code === '0') {
                  this.$message.success("生成成功")
                } else {
                  this.$message.error(res.msg)
                }
              })
            }
          })
        },
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    🌟跨域配置

    后端项目创建这里就省略了。
    1.在后端项目中创建跨域配置类CrosConfig。

    @Configuration
    public class CorsConfig {
    
        // 当前跨域请求最大有效时长。这里默认1天
        private static final long MAX_AGE = 24 * 60 * 60;
    
        @Bean
        public CorsFilter corsFilter() {
            UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
            CorsConfiguration corsConfiguration = new CorsConfiguration();
            corsConfiguration.addAllowedOrigin("*"); // 1 设置访问源地址
            corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头
            corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法
            corsConfiguration.setMaxAge(MAX_AGE);
            source.registerCorsConfiguration("/**", corsConfiguration); // 4 对接口配置跨域设置
            return new CorsFilter(source);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    2.application.properties配置文件添加配置。

    server.port=8081
    
    • 1

    🌟写在最后

    有关于SpringBoot&Vue&EmementUI前后端分离整合、统一封装axios、跨域配置到此就结束了。感谢大家的阅读,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。


    请添加图片描述

  • 相关阅读:
    网络协议之:sctp流控制传输协议
    【Python报错解决方案】DeprecationWarning: `np.float` is a deprecated
    CS5269TypeC转HDMI2.0+VGA带PD100W快充拓展坞方案芯片完整设计资料(原理图+PCB文件)
    Android开发超详细介绍
    关于jQuery_浏览器事件的方法和使用
    Diango项目-简易个人博客项目
    kafka的java客户端-生产者
    无人机助力智慧农田除草新模式,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建无人机航拍场景下的农田杂草检测识别系统
    文件共享服务器
    【元宇宙欧米说】听兔迷兔如何从虚拟到现实创造潮玩新时代
  • 原文地址:https://blog.csdn.net/2302_79094329/article/details/132709674
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号