跨域:就是你在一個在一個域中訪問另外一個域中服務器的內容。前端
後臺解決跨域問題通常兩種 一種是將返回的數據以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
// 指定容許其餘域名訪問 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>