关于c#:从Ajax.BeginForm获取302响应头?

Getting 302 response headers from Ajax.BeginForm?

我有一个MVC操作,它可以返回重定向到操作(302)或部分视图。我正在使用ajax.begininform和onSuccess处理程序来捕获响应。我的问题是,每当发出重定向响应时,似乎有什么东西(不确定它是否是本机Ajax行为)正在处理重定向并返回重定向页面,而不是包含302头的响应。它实际上是绕过302响应并自动检索重定向的页面。这不是我想要的。

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

是否有任何方法返回"原始"302响应?谢谢。


不能让javascriptAjax查询不遵循重定向。(有关更多讨论,请参阅如何防止Ajax请求使用jquery跟踪重定向)。

您应该考虑其他选项——即返回带有"重定向位置"的JSON将更适合Ajax。

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