SpringMVC之前后台分离开发,跨域问题的解决方法

  • Post author:
  • Post category:其他


解决方案:

步奏一:

创建一个SimpleCORSFilter.java类:

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.HttpServletResponse;

public class SimpleCORSFilter implements Filter {

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
		// TODO Auto-generated method stub

	}

	@Override
	public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
			throws IOException, ServletException {
		HttpServletResponse response = (HttpServletResponse) res;
		response.setHeader("Access-Control-Allow-Origin", "*");
		response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH");
		response.setHeader("Access-Control-Max-Age", "3600");
		// response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
		response.setHeader("Access-Control-Allow-Headers", "Origin, Accept, X_Requested_With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers, Authorization, Custom");
		chain.doFilter(req, res);
	}

	@Override
	public void destroy() {
		// TODO Auto-generated method stub

	}

}

步奏二:对每一个前端访问进行拦截过滤(在web.xml中配置)

<filter>
        <filter-name>cors</filter-name>
        <filter-class>cmcc.rsc.paweb.scan.SimpleCORSFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>cors</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>



版权声明:本文为hybaym原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。