在struts.xml
中,我已将tokenSession
拦截器包含在我的拦截器堆栈中,以验证每个请求的令牌。不幸的是,对于AJAX请求,这种方法效果不佳。我在执行invalid.token
时收到actionInvocation.invoke()
响应。
因此,我想停止为AJAX请求执行tokenSession拦截器(单独)。我有一个自定义拦截器(日志记录),它在tokenSession
拦截器之前被调用。是否可以根据请求类型(如果是AJAX请求)从日志拦截器中的堆栈中删除tokenSession
拦截器?
答案 0 :(得分:2)
令牌拦截器扩展MethodFilterInterceptor
,这意味着您可以排除在方法名称上执行拦截器基础。
在你的拦截器堆栈中配置它:
<interceptor-ref name="token">
<param name="excludeMethods">your_ajax_methods_comma_separated</param>
</interceptor-ref>
另一种解决方案是为您的AJAX操作使用不同的拦截器堆栈。
答案 1 :(得分:2)
为您的Action使用不同的拦截器堆栈,或对不同的包使用不同的拦截器堆栈,并将所有操作分组到正确的包中。