У меня есть некоторые вызовы Ajax, которые представляют PartialViewResults с помощью jQuery. Метод Ajax. Это работает отлично, я представил свои представления точно способ, которым я хочу.
Проблема возникает, когда я оставляю на виду страницу некоторое время, и сессия автора Форм истекает. Когда я нажимаю действие, которое выполняет запрос Ajax, это показывает страницу входа в систему в моем отделении.
Я хочу, чтобы это перенаправило страницу WHOLE к странице входа в систему.
Настройте его в методе Application_EndRequest () Global.asax
. Вы можете проверить, является ли запрос запросом ajax, а также проверить, отправляет ли он HTTP-перенаправление (302), если это так, затем мы действительно хотим отправить 401.
protected void Application_EndRequest() {
var context = new HttpContextWrapper(Context);
// If we're an ajax request, and doing a 302, then we actually need to do a 401
if (Context.Response.StatusCode == 302 && context.Request.IsAjaxRequest()) {
Context.Response.Clear();
Context.Response.StatusCode = 401;
}
}
Затем в вашем клиентском коде в глобально доступной области:
MyNamespace.handleAjaxError = function (XMLHttpRequest, textStatus, errorThrown) {
if (XMLHttpRequest.status == 401) {
// perform a redirect to the login page since we're no longer authorized
window.location.replace("logout path");
}
} else {
MyNamespace.displayGeneralError();
}
};
$.ajax({
type: "GET",
url: userAdmin.addUserActionUrl,
success: userAdmin.createUserEditorDialog,
error: MyNamespace.handleAjaxError
});