当会话在apache wicket中超时时,如何修复无响应的UI(失败的ajax调用)?

时间:2017-09-06 14:21:44

标签: java ajax spring-security wicket

我正在尝试在会话超时后修复无响应的用户界面。由于HTTP 302重定向到登录页面,Ajax请求失败 - ajax错误为Could not find root <ajax-response> element

我订阅了ajax失败事件:

Wicket.Event.subscribe('/ajax/call/failure', function( attrs, jqXHR, textStatus, jqEvent, errorThrown ) {
    handleAjaxCallFailure(attrs, jqXHR, textStatus, jqEvent, errorThrown);
});

但我找不到任何合理的方法来获取http响应,响应代码或其他http标头。我也试过了:

$(document).ajaxError(function (event, jqXHR, ajaxSettings, thrownError) {
    handleAjaxError(event, jqXHR, ajaxSettings, thrownError);
});

但这根本不是开火。我正在使用apache wicket 7.6.0。有没有其他方法强制用户登录页面?

1 个答案:

答案 0 :(得分:1)

线路上一定有一些错误。

通常,Wicket将使用<redirect>../the/path/to/login</redirect>中的单个元素返回正确的Ajax响应(XML),wicket-ajax-jquery.js将处理它并进行重定向。

此外,可能有一个名为Ajax-Location的响应头,Wicket以相同的方式处理。

检查响应标头和正文。也可以在这里粘贴它们!