AJAX POST到MVC控制器显示302错误

时间:2013-04-20 09:54:12

标签: asp.net-mvc jquery asp.net-mvc-4 asp.net-ajax

我想在我的MVC视图中进行AJAX POST。我写了以下内容:

视图中的脚本代码

$('#media-search').click(function () {
    var data = { key: $('#search-query').val() };

    $.ajax({
        type: 'POST',
        url: '/Builder/Search',
        data: JSON.stringify(data),
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        success: function (data) {
            $('.builder').empty();
                alert("Key Passed Successfully!!!");
        }
    });
});

控制器代码

[HttpPost]
public ActionResult Search(string key)
{
    return RedirectToAction("Simple", new { key=key });
}

但是在AJAX POST上我得到 302 found Error

1 个答案:

答案 0 :(得分:8)

' 302'响应代码是重定向。您的控制器操作显式返回RedirectToAction,它只返回302.由于此重定向指令由AJAX调用消耗而不是由浏览器直接使用,如果您希望重定向浏览器,则需要执行以下内容:

$.ajax({
     type: 'POST',
     url: '/Builder/Search',
     data: JSON.stringify(data),
     dataType: 'json',
     contentType: 'application/json; charset=utf-8',
     success: function (data) {
          if (data.redirect) {
              window.location.href = data.redirect;
          }
          $('.builder').empty();
          alert("Key Passed Successfully!!!");
     }
});

如果没有,您需要返回比控制器中的重定向指令更有意义的内容。