我的web.config设置得恰到好处并且工作正常但只有当用户执行httpPost时才会识别它应该重定向:
<system.web>
<sessionState mode="InProc" timeout="5" />
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5.1" />
<authentication mode="Forms">
<forms loginUrl="~/Login/Login"></forms>
</authentication>
我在_Layout中设置了此代码:
var _redirectUrl = '@Url.Action("Logout", "Login")';
$(document).ajaxSuccess(function (event, request, settings, xhr, props, jqXHR) {
if (jqXHR.status == 401) {
window.location.href = _redirectUrl;
}
});
jqXHR.status在我的浏览器debuger中返回undefined,我也尝试过props.status并且仍然未定义。有什么建议吗?
答案 0 :(得分:2)
对超时会话的请求将导致http状态302(已找到),从而导致透明的重定向。因此jQuery不会自动处理这个问题。您可以让服务器返回http状态401(未授权)而不是重定向。这是一篇包含您可以复制的代码的文章: