前端后分离Ajax跨域请求保证Session一致
发布时间:2020-12-16 03:17:06 所属栏目:百科 来源:网络整理
导读:前后端分离的项目,使用Ajax请求一般都出现跨域的问题。 跨域的时候所创建的session是不会被浏览器保存下来的。所以每次进行跨域请求时,服务器都认为不是同一个浏览器所发起的请求,session也会不一样。以下将介绍如何保证session一致。 前端Ajax请求 $.aja
前后端分离的项目,使用Ajax请求一般都出现跨域的问题。 前端Ajax请求 $.ajax({ url:url,<! -- 加上此部分 Start-- > xhrFields: { withCredentials: true },crossDomain: true,<! -- 加上此部分 End-- > success:function() { },error:function() { } }); 后端构建一个拦截器,对需要跨域访问的request头部重写 public void doFilter(ServletRequest servletRequest,ServletResponse servletResponse,FilterChain filterChain) throws IOException,ServletException { HttpServletResponse response= (HttpServletResponse) servletResponse; HttpServletRequest request=(HttpServletRequest)servletRequest; response.setHeader("Access-Control-Allow-Origin","*"); response.setHeader("Access-Control-Allow-Methods","POST,GET,OPTIONS,DELETE"); response.setHeader("Access-Control-Max-Age","3600"); response.setHeader("Access-Control-Allow-Headers","x-requested-with"); filterChain.doFilter(servletRequest,servletResponse); } 另外Spring boot的项目可以添加拦截配置,以下: @Component @Order(Ordered.HIGHEST_PRECEDENCE) public class AuthCorsFilter extends CorsFilter { public AuthCorsFilter() { super(configurationSource()); } private static UrlBasedCorsConfigurationSource configurationSource() { CorsConfiguration config = new CorsConfiguration(); config.setAllowCredentials(true); config.addAllowedOrigin("*"); config.addAllowedHeader("*"); config.addAllowedMethod("*"); config.setAllowCredentials(true); UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**",config); return source; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |