Detectar petición ajax en PHP
Muchos programadores acostumbran a usar el mismo fichero PHP para peticiones estándar y peticiones ajax. El uso de un único script facilita el mantenimiento del código simplificando cualquier modificación que realicemos en un futuro además de aportar ventajas en el cacheo.
Normalmente se añade un parámetro a GET o POST para identificar el tipo de llamada, pero si hacemos uso de algún framework javascript podemos ahorrárnoslo y detectar la llamada así:
if( !empty($_SERVER['HTTP_X_REQUESTED_WITH'])
&& strtolower($_SERVER['HTTP_X_REQUESTED_WITH'])
== 'xmlhttprequest' ) {
/* petición ajax */
} else {
/* no es una petición ajax.... */
}
La variable HTTP_X_REQUESTED_WITH es totalmente dependiente de la librería javascript utilizada pero prácticamente todas (Prototype, jQuery, Mootools,YUI…) la envían.
Si por el contrario realizais las llamadas ajax “a mano” podéis añadir la cabecera necesaria de la siguiente manera:
xmlHttpRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
Ningun post realacionado
