如何在控制器's动作方法中重定向Ajax Post ?
本文关键字:方法 重定向 Ajax Post 控制器 | 更新日期: 2023-09-27 17:50:34
我有一个Ajax POST被发送到我的控制器之一。例如
查询>索引
在Index() Action中,我返回一个JSON的ActionResult。
当我做登录检查,我做一个if语句,如果activeUser的会话令牌是空的,我做一个
return RedirectToAction("Index","Auth");
然而,这不是正确的重定向,而是返回JSON的结果,浏览器抱怨。
我如何正确地设置重定向,以便如果if语句失败,它将转到登录页面,否则它将返回我需要的JSON结果?
return Json(new{data=true})
关于ajax成功方法
$.ajax({
type: 'POST',
url: 'your url',
data:your data
success: function (data) {
if (data) {
window.location.href="url";
}
else {
window.location.href="url";
}
},
error: function (xhr, textStatus, errorThrown) {
alert(errorThrown);
}
});
return false;
你可以这样做:
在这两种情况下都返回一个JSON结果,当您的条件为false时仅返回一个false JSON响应。这样,您的调用将返回到视图上的AJAX,然后您可以检查那里的false值,如果匹配,您可以使用javascript重定向重定向到适当的视图。
在Controller中,在JSON中返回true或false。然后在AJAX成功时,如果为true,则设置窗口。
window.location = '@Url.Action("Index","Auth")';
ajax请求的操作不允许您以这种方式重定向。
在错误情况下,您可以返回某种类型的错误值,并在视图中的jQuery中处理这种情况。这可能是重定向到错误页面,显示错误消息等