直接贴源码
前台
$.ajax({
// 设置请求可以携带cookie
xhrFields:{
withCredentials:true
},
crossDomain: true,
contentType: 'application/json',
web.xml
<filter>
<filter-name>contextFilter</filter-name>
<filter-class>filter.SimpleCORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>contextFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
filter:
HttpServletResponse response = (HttpServletResponse) res;
HttpServletRequest request=(HttpServletRequest) req;
//解决Cookie跨域问题
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
response.setHeader("Access-Control-Allow-Methods","GET, POST, PUT, DELETE");
//解决 Content-Type:application/json 时跨域设置失败问题
if("OPTIONS".equals(request.getMethod())) {
//放行OPTIONS请求
chain.doFilter(request, response);
return;
}
chain.doFilter(req, res);