JS跨域:1.解決方案之-SpringMVC攔截器
阿新 • • 發佈:2018-12-12
package com.bdqn.utils; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; public class CommonInterceptor implements HandlerInterceptor { private List<String> excludedUrls; public List<String> getExcludedUrls() { return excludedUrls; } public void setExcludedUrls(List<String> excludedUrls) { this.excludedUrls = excludedUrls; } /** * * @Description: * 在業務處理器處理請求之前被呼叫 如果返回false * 從當前的攔截器往回執行所有攔截器的afterCompletion(), * 再退出攔截器鏈, 如果返回true 執行下一個攔截器, * 直到所有的攔截器都執行完畢 再執行被攔截的Controller * 然後進入攔截器鏈, * 從最後一個攔截器往回執行所有的postHandle() * 接著再從最後一個攔截器往回執行所有的afterCompletion() * * @param request * * @param response * * @return: boolean * * @author: SongJia * * @date: 2016-6-27 下午4:17:51 * */ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "x-requested-with"); return true; } // 在業務處理器處理請求執行完成後,生成檢視之前執行的動作 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } /** * * @Description: * 在DispatcherServlet完全處理完請求後被呼叫 * 當有攔截器丟擲異常時, * 會從當前攔截器往回執行所有的攔截器的afterCompletion() * * @param request * * @param response * * @param handler * * @param ex * * @author: SongJia * * @date: 2016-6-27 下午4:27:51 * */ public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } }
<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**" /> <bean class="com.bdqn.utils.CommonInterceptor"> <property name="excludedUrls"> <list> <value>/</value> </list> </property> </bean> </mvc:interceptor> </mvc:interceptors>