首页IT科技vue+springboot前后端分离的优点(springboot和vue实现前后端分离基础教程)

vue+springboot前后端分离的优点(springboot和vue实现前后端分离基础教程)

时间2025-09-19 08:17:59分类IT科技浏览6457
导读:前言 本学期大作业是做一个系统,然后前段时间也学习了vue和springboot,所以就打算使用springboot和vue来实现前后端分离,练习和巩固所学的东西。然后下面是一些自己遇到的问题,希望能帮助到别人。...

前言

本学期大作业是做一个系统                ,然后前段时间也学习了vue和springboot                         ,所以就打算使用springboot和vue来实现前后端分离         ,练习和巩固所学的东西                 。然后下面是一些自己遇到的问题                ,希望能帮助到别人                         。

一                、环境的搭建

创建一个springboot和一个vue项目                        ,并且将他们放在同一个文件夹下         ,使用idea打开文件夹

 打开之后项目有可能无法被识别出是什么类型的项目        ,可以在项目结构-->facet中点击+号                        ,添加类型

这样环境也就基本搭建成功了                 ,我们可以写一点代码来测试一下前后端是否可以正常获取数据

二                         、测试springboot和vue

测试springboot

package com.example.controller; import org.springframework.web.bind.annotation.*; @RequestMapping("/test") @RestController public class TestController { @GetMapping public String t(){ return "springboot"; } }

成功获取数据

 测试vue

<template> <div class="info"> <button v-on:click="postInfo">showInfo</button> <br> {{info}} </div> </template> <script> import axios from "axios" export default { name: App, data() { return { info: "ee" } }, methods: { postInfo: function () { axios.get(http://localhost:80/test).then(resp=>{ this.info = resp.data }).catch(error=>{ console.log((error)) }) } } } </script>

点击按钮产生的结果

 报错        ,这是由于前端向后端请求数据                        ,而他们的端口号不一样                 ,前端的端口号为8080,后端的是80                        ,所有前端无法向后端获取数据                         ,存在跨域问题

三         、解决跨域问题

1.修改vue的vue.config.js文件

const { defineConfig } = require(@vue/cli-service) module.exports = defineConfig({ transpileDependencies: true, //关闭语法检查 lintOnSave:false, // 开启代理服务器(方式一) // devServer: { // proxy:http://localhost:80 // } //第二种 devServer:{ proxy:{ // 以api为前缀才开启代理,可修改 // 可以配置多个 /api:{ target: http://localhost:80, //正则表达式判断,将路径中的/api转换为"" pathRewrite:{^/api:}, //用于支持websocket // ws:true, //用于控制请求头中的host值 // changeOrigin: true } } } })

有两种开启代理服务器的方法                ,第一种简单                         ,但是只能处理一种情况         ,比如你向80                ,81两个端口请求信息                        ,80配置了代理服务器         ,而81没配置        ,你就无法获取到81的信息;第二种就可以处理多个        。

2.修改访问的url地址

修改前

axios.get(http://localhost:80/test).then()

修改后

axios.get(http://localhost:8080/api/test).then()

你需要把端口号改为你前端网页对应的那个端口号                        ,并且加上/api(就是你vue.config.js配置的那个前缀)

接下来就大功告成了!

结果:

总结

简单介绍了springboot和vue实现前后端分离的操作流程        。

如果想更清楚了解解决跨域问题可以看尚硅谷的课程(96-97 配置代理)

尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通_哔哩哔哩_bilibili

ps:有任何问题都可以给我留言                 ,大家一起进步!

声明:本站所有文章        ,如无特殊说明或标注                        ,均为本站原创发布                         。任何个人或组织                 ,在未征得本站同意时,禁止复制                、盗用                        、采集         、发布本站内容到任何网站        、书籍等各类媒体平台                。如若本站内容侵犯了原著者的合法权益                        ,可联系我们进行处理        。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
vue中map方法(vue中的map()快速使用)