ssm架构和vue的创建这里就不介绍了,主要分析vue跨域调用ssm。
1.普通spring boot项目整合vue很方便,只需配置vue的src目录下config下的index.js文件如下:
module.exports = {
dev: {
// Paths 后端跳转地址设置
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
'/api': {
target: "http://localhost:8080/项目名/",
changeOrigin: true,
pathRewrite: {
'/api': '',
}
}
},
// Various Dev Server settings vue路由地址
host: 'localhost', // can be overwritten by process.env.HOST
port: 1234, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: false,
errorOverlay: true,
notifyOnErrors: true,
poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
2.如果使用ssm框架则需要在
(1)配置config下的index。js文件设置几乎同上,不过将target中的内容清空
module.exports = {
dev: {
// Paths 后端跳转地址设置
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
'/api': {
target: "",
changeOrigin: true,
pathRewrite: {
'/api': '',
}
}
},
(2)在main。js中引入如下
// 引用axios,并设置基础URL为后端服务api地址
var axios = require('axios');
axios.defaults.baseURL = "http://localhost:8080/项目名";地址路径后端的
二、session设置vue路由跳转安全
1.在$axios中成功地方设置如下:
if(res.data.success) {
sessionStorage.setItem('username',res.data.username) //需要后端返回 等同token
this.$router.push('/home' ) // 跳转
}
2.在main。js中设置如下:
// 设置路由的前置守卫(路由跳转之前)
router.beforeEach((to, from, next) => {
console.log(to);//查看作用
console.log(from);//查看作用
console.log(next);//查看作用
if (to.name === 'login') {
next();
} else {
// 判断sesstion里有没有username
const username = sessionStorage.getItem('user');
if (username) {
next();
} else {
next({path: '/'})
}
}
});
3.设置退出如下:
sessionStorage.clear(); // 删除sesstion数据
this.$router.push({ path: "/" }); //跳转到登陆页面