Мой вопрос очень похож на это , но я не мог понять, как я могу держать вещи СУХОЙ.Используя ответ из этого поста, я могу проверить подлинность проверки конкретного вызова AJAX, но в моем приложении есть несколько вызовов AJAX, и если я использую этот подход, мне придется проверять каждый обратный вызов успеха вызова AJAX.Что не совсем круто.
Можете ли вы предложить хороший способ позаботиться об этом и сохранить вещи сухими?
Javascript
function GetStuff(x) {
if (!x.value) return;
$.post('/website/GetStuff', { val: x.value, text: x.text },
function (data) {
$("#ddlStuff").empty().append($("<option>").attr("value", "0").text("Choose...")).removeAttr("disabled");
$.each(data, function (i, d) { $("<option>").attr("value", d.k).text(d.v).appendTo($("#ddNewStuff")); });
});
}
C #
[HttpPost]
public JsonResult GetSutff(long val, string text)
{
List<string> data = new MyClass().GetDataFromDB(val, text);
return Json(data);
}
Поскольку на контроллере, в котором определено действие GetStuff, есть тег Authorize поверх него.Поэтому все звонки, сделанные здесь, должны быть аутентифицированы.Теперь, если сеанс истекает, тогда это действие GetStuff возвращает html домашней страницы (домашняя страница с возвращаемым URL - довольно стандартный материал), и это вызывает проблему.Подобно этому, есть и другие страницы просмотра, чьи действия поста ajax аутентифицируются, и они также терпят неудачу на стороне клиента, когда сеанс завершается неудачно и возвращается html домашней страницы.
Я хочу, чтобы пользователь перенаправил сеанс с истекшим сроком действиялюбопытная страница и хочу узнать хороший и крутой способ сделать это.Надеюсь, я все прояснил.Если нет, дайте мне знать.
Спасибо