Asp.net 表单验证会话超时,如何显示模式poup或重定向整个页面
我使用asp.NETMVC和jquery发出ajax请求,当会话在ajax请求后超时时,完整的sigin页面将加载到我的ajax div中Asp.net 表单验证会话超时,如何显示模式poup或重定向整个页面,asp.net,jquery,asp.net-mvc,session,forms-authentication,Asp.net,Jquery,Asp.net Mvc,Session,Forms Authentication,我使用asp.NETMVC和jquery发出ajax请求,当会话在ajax请求后超时时,完整的sigin页面将加载到我的ajax div中 会话超时时,如何显示模式弹出窗口而不是重定向 处理这个问题的一种方法是使用自定义HTTP头: $.ajax({ url: '/home/someaction', data: {}, success: function(html, status, xhr) { if (xhr.getResponseHeader('REQ
会话超时时,如何显示模式弹出窗口而不是重定向 处理这个问题的一种方法是使用自定义HTTP头:
$.ajax({
url: '/home/someaction',
data: {},
success: function(html, status, xhr) {
if (xhr.getResponseHeader('REQUIRES_AUTH') === '1') {
alert('SESSION EXPIRED!!!');
} else {
$('#result').html(html);
}
}
});
并在登录操作中设置相应的标题:
public ActionResult LogOn()
{
Response.AddHeader("REQUIRES_AUTH", "1");
return View();
}
我的解决方案只有五行JavaScript
$(document).ready(function () {
if ($("#site").length > 0) {
window.location = "<%= Url.Content("~") %>" + "Login/LogOn";
}
});
$(文档).ready(函数(){
如果($(“#站点”)。长度>0){
window.location=”“+“登录/登录”;
}
});
把它放在登录页面上。如果在主页上的div中加载了,它将重定向到登录页面。“#site”是div的id,位于除登录页以外的所有页面上。感谢您的评论。我确实尝试过你的解决方案,它有助于让我有一个正确的开始。我最终找到了这个插件来做我需要的事情。