位置: IT常识 - 正文

springboot和vue实现前后端分离基础教程(springboot和vue结合)

编辑:rootadmin
springboot和vue实现前后端分离基础教程

目录

前言

一、环境的搭建

二、测试springboot和vue

三、解决跨域问题

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

2.修改访问的url地址

前言

推荐整理分享springboot和vue实现前后端分离基础教程(springboot和vue结合),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:springboot+vue3,spring boot与vue,springboot和vue结合,springboot 和vue,spring boot与vue,spring boot与vue,springboot 和vue,spring boot与vue,内容如对您有帮助,希望把文章链接给更多的朋友!

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

一、环境的搭建

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

 

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

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

二、测试springboot和vue

测试springboot

package com.example.controller;import org.springframework.web.bind.annotation.*;@RequestMapping("/test")@RestControllerpublic 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>springboot和vue实现前后端分离基础教程(springboot和vue结合)

点击按钮产生的结果

 报错,这是由于前端向后端请求数据,而他们的端口号不一样,前端的端口号为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:有任何问题都可以给我留言,大家一起进步!

本文链接地址:https://www.jiuchutong.com/zhishi/296142.html 转载请保留说明!

上一篇:关于我的家乡html网页设计完整版,10个以家乡为主题的网页设计与实现(关于我的家乡作文1000字)

下一篇:DenseNet代码复现+超详细注释(PyTorch)(densenet详解)

  • 荣耀20与华为p10的区别(荣耀20与华为p20pro哪个好)

  • 抖音拍同款怎么加字幕(抖音拍同款怎么把字也复制上)

  • 电脑版为正文怎么设置分栏(电脑上正文格式怎么做)

  • 荣耀20pro和nova5pro区别(荣耀20pro和nova7对比)

  • cad鼠标跳动太大(cad2014鼠标跳动太大)

  • 为什么word里的空格是小点(为什么word里的图片不能随意摆放)

  • 苹果无法购买腾讯会员(苹果无法购买腾讯游戏)

  • 阿里本地生活是做什么(阿里本地生活是什么意思)

  • 手机屏幕变紫色怎么回事(手机屏幕变紫色能修好吗)

  • 图片源文件是什么意思(图片 源文件)

  • 拼多多能开发票吗

  • 华为运动耳机怎么充电(华为运动耳机怎么连接手机蓝牙)

  • 淘宝提交订单不付款有影响吗(淘宝提交订单不付款商品会被抢走吗)

  • 苹果8充不进去电怎么回事(苹果8充不进去电开不了机是主板问题么)

  • iphone4现在还能用吗(iphone4现在还能下载的软件)

  • 淘宝拼团规则(淘宝拼购)

  • 复印机缩印怎么设置(复印机缩印怎么调成横向)

  • 荣耀20有屏幕指纹吗(荣耀20有屏幕指纹解锁么)

  • 苹果feedback有什么用(苹果feedback会对系统有损坏吗)

  • 华为nova4和nova5pro的区别(华为nova4和nova5pro参数对比)

  • vivoz3水滴屏什么意思(vivo水滴屏是什么意思)

  • iphone xs max录屏在哪里(iphonexsmax录屏在哪里打开)

  • 如何在电脑PC上启动Windows11和Linux双系统(在电脑上呢)

  • 输入字母和数字会占用一个汉字的位置(输入字母和数字 小学信息技术课)

  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设 电脑维修 湖南楚通运网络