2017-04-24 61 views
0

我已經編寫了一個preHandle方法,它將檢查令牌的URL並且工作正常。Interceptor的preHandle方法是否也會處理ajax調用?

但是對於ajax調用同樣的工作嗎?

public boolean preHandle(final HttpServletRequest request, final HttpServletResponse response,final Object handler) throws Exception { 
      String requesttoken = request.getParameter("token"); 
      if (requesttoken != null && validatetoken(requesttoken)) { 
       return true; 
      } else { 
       response.sendRedirect("/404.html"); 
       return false; 
      } 
     } 
+0

這取決於你所申請的攔截器上的圖案。 –

+0

你能用一個例子來解釋嗎? – superuser33333

+0

請問response.sendRedirect()方法是否也會重定向ajax調用? – superuser33333

回答

0

是的只要模式匹配,攔截器就可以用於ajax調用。退房this SO回答。

如果要排除AJAX調用可以排除像模式:

@Configuration 
@EnableWebMvc 
public class WebConfig extends WebMvcConfigurerAdapter { 

    @Override 
    public void addInterceptors(InterceptorRegistry registry) { 
     registry.addInterceptor(new ThemeInterceptor()).addPathPatterns("/**").excludePathPatterns("/ajax/**"); 
    } 

} 
+0

當攔截器的預處理返回true時會發生什麼?它會遵循Controller的流程並返回View嗎? – superuser33333

+0

@SuprajaKumaravel:是的 –

相關問題