JSP+;Struts:在AJAX调用中处理会话超时
我从我的JS方法中调用ajax,以以下方式调用action类的方法:JSP+;Struts:在AJAX调用中处理会话超时,ajax,jsp,struts2,servlet-filters,session-timeout,Ajax,Jsp,Struts2,Servlet Filters,Session Timeout,我从我的JS方法中调用ajax,以以下方式调用action类的方法: $.getJSON("treeDemo_!getRootNode?appId=" + applicationId, function () { }).success(function (e) { }).error(function (jqXHR, textStatus, errorThrown) { alert(textStatus); }).complete(function () {
$.getJSON("treeDemo_!getRootNode?appId=" + applicationId, function () {
}).success(function (e) {
}).error(function (jqXHR, textStatus, errorThrown) {
alert(textStatus);
}).complete(function () {
});
my web.xml中的会话配置如下所示
<session-config>
<session-timeout>1</session-timeout>
</session-config>
但这看起来像是一个一般性错误。我希望捕获会话超时异常,并在发生此异常时将用户重定向到login.jsp页面
我甚至试着用行动来处理它。但这对我不起作用
您能建议我如何解决它吗?没有“会话超时异常”
您的Ajax调用期望返回JSON,如果会话超时,应用程序中的任何内容都不会返回JSON。在链接中使用过滤器或拦截器,检查会话超时,如果是正常请求,则正常处理,但如果是Ajax请求,则返回HTTP错误代码
在JavaScript回调中处理此错误代码。没有“会话超时异常”
您的Ajax调用期望返回JSON,如果会话超时,应用程序中的任何内容都不会返回JSON。在链接中使用过滤器或拦截器,检查会话超时,如果是正常请求,则正常处理,但如果是Ajax请求,则返回HTTP错误代码
在JavaScript回调中处理此错误代码。谢谢Dave。但正如我所提到的,我按照链接中提到的步骤创建了一个过滤器。但是,当会话超时时,控件不会到达
doFilter()
,这在理想情况下是应该的(我猜)。由于我正在进行AJAX调用,我认为这可能是过滤器无法工作的原因。有什么帮助吗?@Darkknowtfan它不能“到达过滤器”,除非你定义了错误的过滤器,比如把它放在S2过滤器后面或者其他什么。谢谢Dave。但正如我所提到的,我按照链接中提到的步骤创建了一个过滤器。但是,当会话超时时,控件不会到达doFilter()
,这在理想情况下是应该的(我猜)。由于我正在进行AJAX调用,我认为这可能是过滤器无法工作的原因。有什么帮助吗?@Darkknowtfan它不能“到达过滤器”,除非你定义了错误的过滤器,比如把它放在S2过滤器后面或者别的什么东西。
textStatus = parsererror
errorThrown = SyntaxError: JSON.parse: unexpected character