2010-10-05 21 views

Respuesta

64

Todas las llamadas hechas por AJAX jQuery tendrá una cabecera añadida para indicar que es AJAX. La cabecera es para comprobar X-Requested-With, y el valor será XMLHttpRequest cuando se trata de una llamada AJAX.

Tenga en cuenta que las solicitudes AJAX son GET normales o POST, por lo que a menos que usted o su biblioteca AJAX agreguen un encabezado adicional en la solicitud, no hay manera de saber si es AJAX o no.

+2

bien, entonces, ¿cómo puedo verificar este encabezado en asp.net? – Omu

+2

@Omu: 'Request.Headers [" X-Solicitado-Con "]' o similar. Verifique MSDN. Los encabezados ** siempre ** están relacionados con las solicitudes. –

156

También existe la Request.IsAjaxRequest si está utilizando una versión posterior de MVC. No tengo la versión 1 más, así que no puedo decir si está en la versión 1.

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

+1

@BuildStarted necesito este control en Global.asax.cs así que esto no me va a ayudar – Omu

+0

@Omu: Depende de a qué caso de los global.asax.cs. Esta propiedad bool hace lo mismo internamente que sugirió RedFiler. Y tenga en cuenta que los encabezados ** siempre están relacionados con las solicitudes **. –

+0

'IsAjaxRequest' es una extensión de' HttpRequestBase', por lo que debería estar disponible en todas partes donde esté disponible 'Request'. – Buildstarted

48

Funciona para mí en ASP .NET MVC 3

if (Request.IsAjaxRequest()) 
{ 
    // ajax request handled 
} 
+1

Esto no está disponible en Application_Error – ajbeaven

+1

Esto no está disponible en Application_BeginRequest – Varadha31590

+0

En Global.asax : 'new HttpRequestWrapper (Request) .IsAjaxRequest()' – Morgs

Cuestiones relacionadas