¿Cómo saber si la solicitud es ajax en asp.net mvc?

108

alguien, ¿cómo puedo saber si la solicitud es ajax? (Estoy usando jquery para ajax)

Omu
fuente
2
También puede usar Fiddler para ver las solicitudes. Aprenderá mucho haciendo esto.
CrazyDart

Respuestas:

70

Todas las llamadas AJAX realizadas por jQuery tendrán un encabezado agregado para indicar que es AJAX. El encabezado a verificar es X-Requested-With, y el valor será XMLHttpRequestcuando sea una llamada AJAX.

Tenga en cuenta que las solicitudes AJAX son GET o POST normales, por lo que, a menos que usted (o su biblioteca AJAX como jQuery) esté agregando un encabezado adicional en la solicitud, no hay forma de saber con certeza si es AJAX o no.

RedFilter
fuente
3
@Omu: Request.Headers["X-Requested-With"]o similar. Compruebe MSDN. Los encabezados siempre están relacionados con las solicitudes.
Robert Koritnik
179

También está el Request.IsAjaxRequestsi está utilizando una versión posterior de MVC. Ya no tengo la versión 1, así que no puedo decir si está en la versión 1.

Si necesita esta verificación en Global.asax.cs, intente esto: new HttpRequestWrapper(Request).IsAjaxRequest()

Buildstarted
fuente
1
@BuildStarted Necesito esta verificación en Global.asax.cs para que esto no me ayude
Omu
2
@BuildStarted no está disponible en Application_Error
Omu
1
Si, tienes razón. Es porque está fuera de MVC y no se utiliza HttpRequestBase. No he tenido la necesidad de eso, así que no miré demasiado profundamente. Gracias por el aviso.
Build comenzó el
20
nuevo HttpRequestWrapper (Solicitud) .IsAjaxRequest ();
1
Por cierto: si está dentro del filtro de autorización personalizado, use esto para obtener el método IsAjaxRequest en la Solicitud:
filterContext.HttpContext.Request.IsAjaxRequest
51

Me funciona en ASP.NET MVC 3

if (Request.IsAjaxRequest())
{
     // ajax request handled
}
Piotr Czyż
fuente
1
Esto no está disponible en Application_Error
ajbeaven
1
Esto no está disponible en Application_BeginRequest
Varadha31590
En Global.asax:new HttpRequestWrapper(Request).IsAjaxRequest()
Morgs