我有一个自定义注销页面。当用户单击注销时,到达此页面(并且注销状态保存在数据库中)。没有登录机制。如果用户尝试新窗口,则允许他查看该页面,并且注销状态将更改为已登录。
注销后,当用户点击后退按钮(从注销页面)时,不应允许用户查看上一页。
同样:当用户访问页面时,存储时间。当他闲置20分钟并尝试操作时,他将被重定向到会话超时。他不应该在后退按钮点击上查看上一页。
目前在每个页面中,我正在检查数据库状态,并在状态被注销时再次重定向到已注销的页面。但它会导致页面首先加载,然后在javascript中进行验证,然后重定向。有没有更好的方法来解决这个问题?
注意:我根据Clear browser history
中的评论将其发布为新问题 $.ajax(
{
type: "POST",
url: "LogOut.aspx/GetActiveIndicatorStatus",
data: '{"empID": "' + empID + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: navigateBasedOnStatus
}
);
//Helper Function
function navigateBasedOnStatus(result) {
if (result.hasOwnProperty("d")) {
result = result.d
}
//alert($.trim(result));
if ($.trim(result) == "LoggedOUT") {
window.location.href("LogOut.aspx");
}
else
{
contentHolderDiv.css("display", "block");
}
}
参考:
答案 0 :(得分:2)
场景1:不要Ajax:
如果您在页面上,用户可能无法再次看到,
window.location.replace("LogOut.aspx/GetActiveIndicatorStatus?empID="+empID)
无论您返回什么内容,都会替换您所在页面。
场景2:在结果中替换:
if ($.trim(result) == "LoggedOUT") {
window.location.replace("LogOut.aspx");
}
else
{
contentHolderDiv.css("display", "block");
}