Springmvc自定义过滤器Filter,解决跨域问题
1、在项目中web.xml文件中加入如下内容,注意定义在spring框架filter的前面。
其中filter-class属性com.myprojectname.CORSFilter为下面步骤自定义的类的全路径包名称+类名称。

2、自定义类,实现Filter接口。
@Component
public class CORSFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
String hm = ((HttpServletRequest)req).getMethod();
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTI ONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.addHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
chain.doFilter(req, res);
}
public void init(FilterConfig filterConfig) {}
public void destroy() {}
}
利用Access-Control-Allow-Origin设置response响应头来实现跨域访问,
如果它的值设为 * ,则表示所有域都可以访问,在正式环境中都设置成具体的域名(http://www.youdomain.com)。
