Micaela 27 de agosto de 2009 a las 09.02
   Imprimir artículo
elWebmaster.com

C贸mo detectar peticiones de AJAX con PHP


phpelefante12A muchos desarrolladores les gusta utilizar el mismo script PHP tanto para las peticiones de contenido AJAX como para las No-AJAX. Utilizar un solo script simplifica mucho las cosas.

A continuaci贸n les dejo una forma para intentar detectar una petici贸n AJAX (en oposici贸n a una carga normal de una p谩gina) mediante la implementaci贸n de un sencillo c贸digo PHP.

El c贸digo en cuesti贸n es el siguiente:

$content = get_content(); //generic function;
if(!empty($_SERVER[‘HTTP_X_REQUESTED_WITH’]) && strtolower($_SERVER[‘HTTP_X_REQUESTED_WITH’]) == ‘xmlhttprequest’) {
die($content);
}

Si bien $_SERVER[‘HTTP_X_REQUESTED_WITH’] es el boleto de oro en este c贸digo, no todos los servidores ponen a nuestra disposici贸n esta variable por lo que tener otros controles en su lugar ser谩 importante.

Fuente: David Walsh Blog


Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Comentarios (4)

  1. Luis Carlos dice:

    otro truco puede ser poniendo una variable en la peticion ajax.. y si la variable no es pedida en el php ke redirija a otro documento…

  2. Christian Bocaz dice:

    Bueno, para mi es mas facil pasar una variable por get indicando si la petici贸n es o no desde ajax.
    As铆 desde el script de php se puede distinguir y no tener problemas con la variable HTTP_X_REQUESTED_WITH que como dice el autor del art铆culo, muchos servidores no la ponen a disposici贸n.

  3. jose dice:

    Bueno de hecho es correcto, ademas no hay forma de saber como es la configuracion del otro servidor ni como es la logica ademas es poco usual la instruccion.

  4. EroS dice:

    Excelente aporte. Con Zend desde los controladores podemos preguntarlo de la siguiente manera:
    $this->getRequest()->isXmlHttpRequest()
    Este devolvera true o false segun corresponda al igual que tu ejemplo, consulta por las mismas cabeceras.

Deja tu opinión

© 2007 - 2008 elWebmaster.com | Powered by Wordpress | Diseño CSS y XHTML válido. | Algunos íconos basados en FamFamFam Mini
Acceder