6

我想在我的 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

4

1 回答 1

8

“302”响应代码是重定向。您的控制器操作显式返回 a 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!!!");
     }
});

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

于 2013-04-20T10:08:09.480 回答