A 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








Jueves, 27 de Agosto de 2009 a las 21.24
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…
Viernes, 28 de Agosto de 2009 a las 01.43
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.
Martes, 1 de Septiembre de 2009 a las 18.59
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.
Lunes, 7 de Septiembre de 2009 a las 07.44
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.