2012-04-26 19 views

Respuesta

5

Si utiliza jQuery para el Ajax, que establece lo siguiente encabezado de solicitud:

X-Requested-With: XMLHttpRequest 

que posteriormente pueda acceder para probar si una llamada se realiza a través de Ajax o no.

+0

I Soy consciente de eso, solo me preguntaba si había un método similar a 'isAjax' directamente en Play Fw, en lugar de tener que buscar este encabezado cada vez que necesito saber. –

+0

No, no hay ninguno, debe verificar los encabezados. –

+0

Es triste. ¿Por qué eliminaron este método, fue muy útil? –

4

Se puede definir como un método y utilizarlo en su controlador:

def isAjax[A](implicit request : Request[A]) = { 
    request.headers.get("X-Requested-With") == Some("XMLHttpRequest") 
} 
+0

+1, simplemente verificar si el encabezado x-requested-with no es suficiente, Android 4 envía el encabezado sin importar qué (como "com.google. android.browser "), solicitud de ajax o no. – virtualeyes

2

Aquí es una implementación de Java ingenua para aquellos que no usan Scala (como yo)

/** 
* Check if the request was made via Ajax or not 
* @return 
*/ 
public static Boolean isAjax() { 
    String requestWithHeader = "X-Requested-With"; 
    String requestWithHeaderValueForAjax = "XMLHttpRequest"; 

    String[] value = request().headers().get(requestWithHeader); 
    return 
     value != null && 
     value.length > 0 && 
     value[0].equals(requestWithHeaderValueForAjax); 
} 
Cuestiones relacionadas