javascript之ssm+vue前后端分离框架整合实现


本文摘自PHP中文网,作者coldplay.xixi,侵删。

前言

本文针对Spring+SpringMVC+Mybatis后台开发框架(基于maven构建)与vue前端框架(基于webpack构建)的项目整合进行介绍,对于ssm和vue单独项目的搭建不作为本文的重点,而着重介绍两者之间交互的要点。

相关学习推荐:javascript视频教程

SSM

项目结构

说明
项目有service和web两个子项目组成,web依赖于service,其中web主要是control层内容,service则对应service层,而MyBatis内容放在了service项目中,spring配置文件放在了web项目中。将control层和service层分离成两个子项目,有利于项目的维护。

Vue


2.可以看出,这个是标准的使用webpack搭建的vue项目

前后端交互(重点)

重点来了,前后端交互无非是前端能够访问后端接口,并且成功接收到后端返回数据。在配置过程中,需要注意两个点,一是配置后端接口地址,二是跨域问题。

配置后端接口地址

在vue中,使用的是axios发送ajax请求和后台交互,我们需要main.js中配置axios默认访问地址。

在src/main.js文件中增加

1

2

3

4

5

6

7

// 引用axios,并设置基础URL为后端服务api地址

var axios = require('axios')

axios.defaults.baseURL = "http://127.0.0.1:8080/blog/api"

//设置全局,每次ajax请求携带cookies

// axios.defaults.withCredentials = true

// 将API方法绑定到全局

Vue.prototype.$axios = axios

我们配置http://127.0.0.1:8080/blog/api为所有axios的默认请求地址,其中后台端口号为8080,而vue项目默认的端口号也为8080,所有需要修改vue项目中的默认访问端口号,改为8090(不与后台端口冲突即可)。

在config/index.js修改


测试代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

created:function(){

  var data = Qs.stringify({});

  this.$axios

  .post('/check', data)

  .then(successResponse => {

   this.responseResult = JSON.stringify(successResponse.data)

   if (successResponse.data.code === 200) {

    this.$notify({

     title: '成功',

     message: successResponse.data.message,

     type: 'success'

    });

   }else{

    this.$notify({

     title:"失败",

     message:successResponse.data.message,

     type:'error'

    })

   }

  })

  .catch(failResponse => {})

 }

配置好之后,运行项目发现前端仍然是无法访问后台接口,出现以下报错。可以看出是出现跨域问题了。

阅读剩余部分

相关阅读 >>

js 闭包的作用是什么?

vue脚手架搭建流程

javascript中如何取值

javascript是不是弱语言

聊聊javascript中的可选 (?.)操作符

分享一些javascript中鲜为人知的隐藏语法或技巧

javascript怎么删除 tr

如何实现炫酷的数字大屏

javascript如何改变背景

介绍javascript正则实现表达式以字母开头

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...