Java Web 处理跨域请求
只需增加一个过滤器
@WebFilter("*.do")
public class CrossFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//变成http的
HttpServletResponse resp = (HttpServletResponse) servletResponse;
// 添加参数,允许任意domain访问
resp.setContentType("text/html;charset=UTF-8");
//禁用缓存,确保网页信息是最新数据
resp.setHeader("Pragma","No-cache");
resp.setHeader("Cache-Control","no-cache");
resp.setHeader("Access-Control-Allow-Origin", "*");
resp.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, HEAD, DELETE, PUT");
resp.setHeader("Access-Control-Max-Age", "3600");
resp.setHeader("Access-Control-Allow-Headers",
"X-Requested-With, Content-Type, Authorization, Accept, Origin, User-Agent, Content-Range, Content-Disposition, Content-Description");
resp.setDateHeader("Expires", -10);
filterChain.doFilter(servletRequest, resp);
}
@Override
public void destroy() {
}
}