我正在从JS方法调用ajax调用以下列方式调用action类的方法:
$.getJSON("treeDemo_!getRootNode?appId=" + applicationId, function () {
}).success(function (e) {
}).error(function (jqXHR, textStatus, errorThrown) {
alert(textStatus);
}).complete(function () {
});
我的web.xml中的会话配置如下所示
<session-config>
<session-timeout>1</session-timeout>
</session-config>
现在,当会话在1分钟后过期时,ajax调用将返回错误(不调用action方法)。错误说
textStatus = parsererror
errorThrown = SyntaxError: JSON.parse: unexpected character
但这看起来像是一般错误。我想捕获会话超时异常并将用户重定向到login.jsp页面,以防发生此异常。
我甚至尝试通过this来处理它。但它对我不起作用。
您能否建议我该如何解决?
答案 0 :(得分:1)
没有“会话超时异常”。
您的Ajax调用期望返回JSON,如果会话超时,应用程序中的任何内容都不会发送JSON。使用链接中的过滤器或拦截器,检查会话超时,如果是正常请求则正常处理,但如果是Ajax请求则发回HTTP错误代码。
在JavaScript回调中处理此错误代码。