4

struts.xml中,我tokenSession在我的拦截器堆栈中包含了拦截器,以验证每个请求的令牌。不幸的是,对于 AJAX 请求,同样的效果并不好。执行时我得到了invalid.token响应actionInvocation.invoke()

因此,我想停止为 AJAX 请求(单独)执行 tokenSession 拦截器。我有一个自定义拦截器(日志记录),它在拦截器之前被调用tokenSessiontokenSession是否可以根据请求类型(如果是 AJAX 请求)从日志拦截器的堆栈中删除拦截器?

4

2 回答 2

2

为您的动作使用不同的拦截器堆栈,或为不同的包使用不同的拦截器堆栈,并将所有动作分组到正确的包中。

于 2012-12-12T10:47:45.037 回答
2

令牌拦截器扩展MethodFilterInterceptor了这意味着您可以根据方法名称排除拦截器的执行。

在你的拦截器堆栈中配置它:

<interceptor-ref name="token">
   <param name="excludeMethods">your_ajax_methods_comma_separated</param>
</interceptor-ref>

另一种解决方案是为您的 AJAX 操作使用不同的拦截器堆栈。

于 2012-12-12T10:43:50.763 回答