SpringMVC 跨域問題

跨域:就是你在一個在一個域中訪問另外一個域中服務器的內容。前端

 後臺解決跨域問題通常兩種 一種是將返回的數據以jsonp格式返回。前端經過ajax等前段腳本解析jsonp格式數據。web

今天只是解決spirngmvc 後臺經過過濾器解決跨域ajax

 

過濾器代碼以下:json

    public class BasicFilter implements Filter {跨域

     public void destroy() {服務器

     }session

     public void doFilter(ServletRequest servletRequest,
   ServletResponse servletResponse, FilterChain filterchain)
   throws IOException, ServletException {mvc

      HttpServletResponse response = (HttpServletResponse) servletResponse;
//  HttpServletRequest request = (HttpServletRequest) servletRequest;
//  HttpSession session = request.getSession();
  app

  1. // 指定容許其餘域名訪問  jsonp

  response.addHeader("Access-Control-Allow-Origin", "*");

二、// 響應類型  響應方法

  response.addHeader("Access-Control-Allow-Methods", "POST, OPTIONS"); 

    // 響應頭設置 

  response.addHeader("Access-Control-Allow-Headers", "POWERED-BY-FANTONG");

    response.addHeader("Access-Control-Max-Age", "30");   
  
  
  // 須要過濾的代碼
  filterchain.doFilter(servletRequest, servletResponse);
 }

     public void init(FilterConfig config) throws ServletException {

     }
}

web.xml中配置過濾器

  <filter>  <filter-name>basicFilter</filter-name>  <filter-class>com.fantong.basic.filter.BasicFilter</filter-class>  <init-param>   <param-name>encoding</param-name>   <param-value>utf-8</param-value>  </init-param> </filter> <filter-mapping>  <filter-name>basicFilter</filter-name>  <url-pattern>/*</url-pattern> </filter-mapping>

相關文章
相關標籤/搜索