AJAX POST 到 MVC 控制器显示 302 错误
Posted
技术标签:
【中文标题】AJAX POST 到 MVC 控制器显示 302 错误【英文标题】:AJAX POST to MVC Controller showing 302 error 【发布时间】:2013-04-13 16:38:03 【问题描述】:我想在我的 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】:“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!!!");
);
如果没有,您需要从控制器返回比重定向指令更有意义的内容。
【讨论】:
我不想重定向到另一个页面。我只想从 MVC 中该控制器的操作返回一些数据。 那么你不应该返回一个RedirectToAction
,它只是返回一个302重定向到另一个URL。
那么我应该怎么做才能将 Json 值返回到视图中?
是的,看看JsonResult
- geekswithblogs.net/michelotti/archive/2008/06/28/…以上是关于AJAX POST 到 MVC 控制器显示 302 错误的主要内容,如果未能解决你的问题,请参考以下文章
将多个参数从 ajax post 传递到 asp.net mvc 控制器
确保控制器方法实际上是由 ajax 或 mvc 中的 POST 请求调用的
如何将两个数组作为 POST 请求参数从 AJAX 发送到 MVC 控制器(ASP .NET Core 3.1 剃须刀)?
为啥 jQuery AJAX Post Content-Type=application/json 到 MVC 控制器操作方法导致空参数