从Ajax.BeginForm获取302响应头?

时间:2015-06-15 15:28:22

标签: c# jquery asp.net ajax asp.net-mvc

我有一个MVC操作,可以返回RedirectToAction(302)或部分视图。我使用Ajax.BeginForm和OnSuccess处理程序来捕获响应。我的问题是,每当发出重定向响应时,似乎某事(不确定它是否是本机AJAX行为)正在处理重定向并返回包含302标头的响应的重定向页面INSTEAD。它基本上绕过了302响应并自动检索重定向页面。这不是我想要的。

我的目标,即响应,是查看OnSuccess事件中的标题,并优雅地处理当前页面的重定向或部分视图更新。

有没有办法退回" raw" 302响应?感谢。

1 个答案:

答案 0 :(得分:0)

无法对进行JavaScript AJAX查询而不遵循重定向。 (有关更多讨论,请参阅How to prevent ajax requests to follow redirects using jQuery。)

您应该考虑其他选项 - 即使用"重定向位置"返回JSON;会更加适合AJAX。

 return new JsonResult { 
     JsonRequestBehavior = JsonRequestBehavior.AllowGet,
     Data = new { Location = Url.Action("ActionName") }};