同步方法表明调用一旦开始,调用者必须等待方法执行完成,才能继续执行后续方法。
当一个方法执行时不必去等待该方法全部执行完成后才去执行该方法后续的方法。调用者无需等待其中方法执行完成,就可以继续执行后续方法。
发起表单的请求,是同步的,必须要等待服务器响应回来结果后,才可以继续对向后执行,响应回来的问题的内容,会将整个网页内容覆盖掉。
异步的向服务器发送请求,服务器返回内容,可以实现对网页内容做局部更新。
发送异步请求,也就是表示浏览器同时可以做多件事情。
在浏览器中提供XMLHttpRequest对象,可以使用此对象向服务器代理发送请求,这样的请求就是异步的.服务器响应方式与之前没有任何区别,响应的内容不会覆盖整个网页,响应内容会被XMLHttpRequest对象接收,就可以在js中局部的更新网页内容,使用XMLHttpRequest对象向另一个服务发送请求是可以发送过去的, 但是浏览器不允许在当前服务页面接收另一个服务器响应的内容。
解决办法:前端可以解决后端也可以解决响应时在响应头中告诉浏览器我是安全的.
-
- @WebFilter(urlPatterns = "/*")
- public class CorsFilter implements Filter {
- public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
- throws IOException, ServletException {
- HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
- HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
- System.out.println("跨域过滤器");
- //允许携带Cookie时不能设置为* 否则前端报错
- httpResponse.setHeader("Access-Control-Allow-Origin", httpRequest.getHeader("origin"));//允许所有请求跨域
- // 在使用时将origin替换成信任的IP
- httpResponse.setHeader("Access-Control-Allow-Methods", "*");//允许跨域的请求方法GET, POST, HEAD 等
- httpResponse.setHeader("Access-Control-Allow-Headers", "*");//允许跨域的请求头
- httpResponse.setHeader("Access-Control-Allow-Credentials", "true");//是否携带cookie
-
- filterChain.doFilter(servletRequest, servletResponse);
- }
- }

axios框架安装
axios是一个HTTP的网络请求库
1.使用脚手架命令行安装:npm install axios
//在main.js中导入网络请求库
- //导入网络请求库
- import axios from 'axios';
- //定义后端地址
- axios.defaults.baseURL = "http://127.0.0.1:8089/webBack/";
- //将axios绑定到Vue对象中
- Vue.prototype.$http = axios;
2.在Vue组件中的函数体中使用axios框架向后端发送请求


通过后端返回的值进行判断是否进行页面跳转
