0

当用户通过身份验证时,此 ajax 帖子工作正常,但对于未经身份验证的用户,我想使用 [Authorize] 重定向到登录。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 status:200 的错误,状态文本:OK。

4

1 回答 1

1

Since this is an Ajax-call, you cannot redirect from the server. You can only redirect if it's a direct request.

If you do want to redirect on the client-side, you could do this in the error-handler:

error: function (XMLHttpRequest, textStatus, errorThrown) {
     window.location = "/Login";
     alert('readyState:' + XMLHttpRequest.readyState + ' status:' + XMLHttpRequest.status + ', status text: ' + XMLHttpRequest.statusText, +errorThrown);
                }
于 2013-05-15T07:43:57.060 回答