我有一个MVC操作,可以返回RedirectToAction(302)或部分视图。我使用Ajax.BeginForm和OnSuccess处理程序来捕获响应。我的问题是,每当发出重定向响应时,似乎某事(不确定它是否是本机AJAX行为)正在处理重定向并返回包含302标头的响应的重定向页面INSTEAD。它基本上绕过了302响应并自动检索重定向页面。这不是我想要的。
我的目标,即响应,是查看OnSuccess事件中的标题,并优雅地处理当前页面的重定向或部分视图更新。
有没有办法退回" raw" 302响应?感谢。
答案 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") }};