首先感谢优快云 检索列表结果之前20篇文章。
security xml:
<http auto-config='true' access-decision-manager-ref='accessDecisionManager' security-context-repository-ref="securityContextRepository"> <!--...--> <custom-filter ref="YourFilter" before="FORM_LOGIN_FILTER"/> </http>
自定义Filter:
public class YourFilter implements Filter { // /**...*/ public void init(FilterConfig filterConfig) throws ServletException { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //Bro.Hon 实现跨域 2018/4/27 0027 boolean isCors = Boolean.parseBoolean(((HttpServletRequest) request).getParameter("cors")); ((HttpServletResponse) response).setHeader("Access-Control-Allow-Origin", "http://localhost:63343"); //or (HttpServletRequest) request).getHeader("Origin") ((HttpServletResponse) response).setHeader("Access-Control-Allow-Methods", "POST, GET"); ((HttpServletResponse) response).setHeader("Access-Control-Max-Age", "3600"); ((HttpServletResponse) response).setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); ((HttpServletResponse) response).setHeader("Access-Control-Allow-Credentials","true"); //允许cookie
Ajax:
function login() { $.ajax({ type: 'POST',url: "http://192.168.3.244:8089/j_spring_security_check", datatype: "text", data: { j_username: "***", j_password: "***" }, xhrFields: { withCredentials: true }, crossDomain: true, success: function (data) { if (data.success) { document.cookie = "domain=your_domain_cookie_key;"; } else { } }, error: function () { }, async: false }); } function getdata() { $.ajax({ type: 'GET', url: "http://192.168.3.244:8089/***/***.do", datatype: "json", data: { cors: true }, xhrFields: { withCredentials: true }, crossDomain: true, success: function (data) { if (data.success) { } else { } }, error: function () { }, async: false }); }* Ajax参考