这个ajax帖子在用户通过身份验证后工作正常,但对于uanauthenticated用户,我想使用[Authorize]重定向到login.Javascript代码如下所示...
$("#favorite").click(function () {
var favoriteText = $("#favorite").text();
var status = 1;
if (favoriteText == "Remove From Favorite") {
status = 0;
} else {
status = 1;
}
$.ajax({
url: '@Url.Action("AddFavorite", "MovieProfile")',
data: {
Status: status
},
dataType: 'json',
type: "POST",
success: function (data) {
alert('sucsess');
if (status == 1) {
$("#favorite").text("Remove From Favorite");
} else {
$("#favorite").text("Add To Favorite");
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('readyState:' + XMLHttpRequest.readyState + ' status:' + XMLHttpRequest.status + ', status text: ' + XMLHttpRequest.statusText, +errorThrown);
}
});
});
行动是......
[HttpPost]
[Authorize]
public ActionResult AddFavorite(int Status)
{
//code goes here
}
但它在readyState:4状态:200,状态文本:OK。
时出错答案 0 :(得分:1)
由于这是一个Ajax调用,因此无法从服务器重定向。只有在直接请求时才能重定向。
如果您确实想在客户端重定向,可以在错误处理程序中执行此操作:
error: function (XMLHttpRequest, textStatus, errorThrown) {
window.location = "/Login";
alert('readyState:' + XMLHttpRequest.readyState + ' status:' + XMLHttpRequest.status + ', status text: ' + XMLHttpRequest.statusText, +errorThrown);
}