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

How to fix unresponsive UI (failing ajax calls) when session times out in apache wicket?

我正在尝试修复 session 超时后无响应的 UI。 Ajax 请求失败,因为 HTTP 302 重定向到登录页面 - 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 headers。我也试过:

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

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

线路上一定有错误。

通常 Wicket 会 return 一个适当的 Ajax 响应(XML),在 <redirect>../the/path/to/login</redirect> 中有一个元素,wicket-ajax-jquery.js 会处理它并进行重定向。

此外,Wicket 可能会以相同的方式处理名为 Ajax-Location 的响应 header。

检查响应 header 和 body。也把它们粘贴在这里!