关于JS调用Java后台API跨域问题的解决方法

来源:互联网 发布:钱夫人淘宝店创始人 编辑:程序博客网 时间:2024/06/01 10:45
  1. 创建CORSFilter.java
  2. public class CORSFilter implements Filter {  public void init(FilterConfig filterConfig) throws ServletException {  }  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)      throws IOException, ServletException {    HttpServletResponse res = (HttpServletResponse) response;    res.setContentType("text/html;charset=UTF-8");    res.setHeader("Access-Control-Allow-Origin", "*");    res.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");    res.setHeader("Access-Control-Max-Age", "0");    res.setHeader("Access-Control-Allow-Headers",        "Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With,userId,token");    res.setHeader("Access-Control-Allow-Credentials", "true");    res.setHeader("XDomainRequestAllowed", "1");    chain.doFilter(request, response);  }  public void destroy() {    // TODO Auto-generated method stub  }}

  3. 配置web.xml
  4. <filter>    <filter-name>CORSFilter</filter-name>    <filter-class>CORSFilter全限定名</filter-class>  </filter><filter-mapping>    <filter-name>CORSFilter</filter-name>    <url-pattern>/*</url-pattern>  </filter-mapping>