gpt4 book ai didi

ajax - JSF 2 ajax 按钮在 session 超时后不进行服务器调用

转载 作者:行者123 更新时间:2023-12-01 04:11:34 25 4
gpt4 key购买 nike

我的应用程序正在使用 RSA authentication manager 进行身份验证

用户登录后,其登录用户 ID 将从请求 header 中检索,角色由 LDAP 查找确定。然后 JSF2 应用程序使用此角色来显示页面上的某些部分和其他授权相关区域。

(注意:这也可以使用 Tivoli 代替 RSA)。

应用程序超时由 web.xml session-timeout 值控制,当前设置为 30 分钟。 RSA 超时设置为 2 分钟(用于测试)。当 RSA session 在应用程序 session 之前到期,并且用户执行任何服务器操作(例如单击按钮)时,用户会被 RSA 自动转发回登录页面。
它工作正常。

在我向应用程序中的一些按钮添加了 ajax 功能之后,使用以下 f:ajax 标记

< h: commandLink id="todayOrdersLink"value="someValue"
action="#{someAction}"
onclick="clearAllElementsInHiddenDivs('confirmationSearch'); > < f:ajax execute="@form"onevent="showWorkingIndicator"/>


现在,当 RSA session 到期并且我单击这样的按钮时,该按钮不会进行服务器调用,而是显示 javascript 弹出窗口,提示格式错误的 XML:文档为空。

但是,如果我单击 F5 按钮或浏览器刷新按钮来强制调用服务器,那么之前转发到登录页面的行为仍然有效。在 RSA session 到期后,我必须以某种方式能够从 ajaxified 按钮进行服务器调用。

任何帮助将不胜感激。

最佳答案

这是因为 View 不再存在并且服务器无法在服务器上重新创建 View 来执行 ajax,您可以尝试以下操作:

var onError = function onError() {
window.location = 'http://domain.com/loginPage.jsf';
};
jsf.ajax.addOnError(onError);

关于ajax - JSF 2 ajax 按钮在 session 超时后不进行服务器调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5783457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com