导入后台项目


npm install element-ui -S
npm install axios -S
npm install qs -S
npm install vue-axios -S
一步一步来
npm install element-ui -S

npm install axios -S

npm install qs -S

npm install vue-axios -S

import Vue from 'vue'
import ElementUI from 'element-ui' // 新添加 1
import 'element-ui/lib/theme-chalk/index.css' // 新添加 2 ,避免后期打包样式不同,要放在import App from './App'; 之前
import App from './App'
import router from './router'
Vue.use(ElementUI) // 新添加 3
Vue.config.productionTip = false
导入之后即可测试ElementUI 是否有效,到官网找组件然后引用即可
默认按钮
主要按钮
成功按钮
信息按钮
警告按钮
危险按钮

页面代码
用户登录
提交
用户注册
忘记密码
login.vue
样式代码
index.js配置
import Vue from 'vue'
import Router from 'vue-router'
import Login from '@/views/Login'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'Login',
component: Login
}, {
path: '/Login',
name: 'Login',
component: Login
}
]
})
运行结果:

import axios from '@/api/http' #vue项目对axios的全局配置
import VueAxios from 'vue-axios'
Vue.use(VueAxios,axios)
登录
用户登录
提交
用户注册
忘记密码
login.vue
import Vue from 'vue'
import Router from 'vue-router'
import Login from '@/views/Login'
import Reg from '@/views/Reg'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'Login',
component: Login
}, {
path: '/Login',
name: 'Login',
component: Login
},{
path: '/Reg',
name: 'Reg',
component: Reg
}
]
})
注册
用户注册
提交
用户登录
忘记密码
login.vue
运行结果:
当密码和用户名为空的时候会在控制台打印

当用户名密码错误时

当用户名密码正确:

提示版:

点击注册时跳到注册界面

登录时 密码错误/密码正确/账户密码为空得显示时,要出现相应的消息提示框,去拜读一下官网

用户登录
提交
用户注册
忘记密码
login.vue
运行结果:

在T216_SSH项目中的web.xml有个解决cors跨域问题的过滤器 注释掉

再去运行项目,直接点提交

请求地址由协议+ip+端口+项目构成
跨域产生的因素:协议、ip、端口、项目有任意一处发生改变,都会产生跨域的现象
解决跨域问题的代码
package com.zking.vue.util;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 配置tomcat允许跨域访问
*
* @author Administrator
*
*/
public class CorsFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
// @Override
// public void doFilter(ServletRequest servletRequest, ServletResponse
// servletResponse, FilterChain filterChain)
// throws IOException, ServletException {
// HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
//
// // Access-Control-Allow-Origin就是我们需要设置的域名
// // Access-Control-Allow-Headers跨域允许包含的头。
// // Access-Control-Allow-Methods是允许的请求方式
// httpResponse.addHeader("Access-Control-Allow-Origin", "*");// *,任何域名
// httpResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT,
// DELETE");
// // httpResponse.setHeader("Access-Control-Allow-Headers", "Origin,
// // X-Requested-With, Content-Type, Accept");
//
// // 允许请求头Token
// httpResponse.setHeader("Access-Control-Allow-Headers",
// "Origin,X-Requested-With, Content-Type, Accept, Token");
// HttpServletRequest req = (HttpServletRequest) servletRequest;
// System.out.println("Token=" + req.getHeader("Token"));
// if("OPTIONS".equals(req.getMethod())) {
// return;
// }
//
//
// filterChain.doFilter(servletRequest, servletResponse);
// }
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
HttpServletResponse resp = (HttpServletResponse) servletResponse;
HttpServletRequest req = (HttpServletRequest) servletRequest;
// Access-Control-Allow-Origin就是我们需要设置的域名
// Access-Control-Allow-Headers跨域允许包含的头。
// Access-Control-Allow-Methods是允许的请求方式
resp.setHeader("Access-Control-Allow-Origin", "*");// *,任何域名
resp.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE");
// resp.setHeader("Access-Control-Allow-Headers", "Origin,X-Requested-With,
// Content-Type, Accept");
// 允许客户端,发一个新的请求头jwt
resp.setHeader("Access-Control-Allow-Headers", "Origin,X-Requested-With, Content-Type, Accept, jwt");
// 允许客户端,处理一个新的响应头jwt
resp.setHeader("Access-Control-Expose-Headers", "jwt");
// String sss = resp.getHeader("Access-Control-Expose-Headers");
// System.out.println("sss=" + sss);
// 允许请求头Token
// httpResponse.setHeader("Access-Control-Allow-Headers","Origin,X-Requested-With,
// Content-Type, Accept, Token");
// System.out.println("Token=" + req.getHeader("Token"));
if ("OPTIONS".equals(req.getMethod())) {// axios的ajax会发两次请求,第一次提交方式为:option,直接返回即可
return;
}
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
}
}
先修改main.js

然后再重启项目

输入正确的用户名和密码

Login.vue
let url = 'http://localhost:8080/T216_SSH/vue/userAction_login.action';//修改它
this.axios.post(url, this.ruleForm).then(function(response) {
console.log(response);
}).catch(function(error) {
console.log(error);
});
结果:

解决
let url = 'http://localhost:8080/T216_SSH/vue/userAction_login.action';
this.axios.post(url, qs.stringify(this.ruleForm)).then(function(response) {
console.log(response);
}).catch(function(error) {
console.log(error);
});
运行结果: