Solución:
Si usa AJAX para solicitar una página, no se puede redirigir en el navegador. Debe responder un código de estado y luego usar javascript para redirigir al frente, como este
[HttpPost]
public JsonResult GetUserTraj()
{
if (Session["UserName"] != null)
{
var userTrajList =
DBManager.Instance.GetUserTraj(Session["UserName"].ToString());
return Json(userTrajList);
}
else
{
//RedirectToAction("Login", "Login");
return Json(new {code=1});
}
}
Debe escribir esta condición dentro de su llamada exitosa de Ajax para volver a cargar la pantalla de inicio de sesión,
if(result.code ===1){
window.location = 'yourloginpage.html'
}
No puede redirigir al usuario a una nueva página usando ajax. Para esto, debe enviar alguna bandera en el lado del cliente y luego debe usar esa bandera para identificar que la sesión ha expirado. El siguiente código le ayudará:
[HttpPost]
public JsonResult GetUserTraj()
{
if (Session["UserName"] != null)
{
var userTrajList = DBManager.Instance.GetUserTraj(Session["UserName"].ToString());
return Json(new { Success = true, Data = userTrajList});
}
else
{
return Json(new { Success = false, Message = "Session Expired"});
}
}
jQuery
$.ajax({
url: "any url",
dataType: '',
contentType: "------",
success: function(response){
if(response.Success){
// do stuff
}else{
window.location.href = "https://foroayuda.es/YourLoginURL.aspx"
}
}
});
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)