AJAX e PHP interagiscono molto bene insieme. L'unico problema che ha PHP è riconoscere quando una richiesta viene fatta tramite AJAX. Per questo motivo tutti i framework che usano AJAX (compreso jQuery), impostano l'header HTTP_X_REQUESTED_WITH
nelle loro richieste. Vediamo come sfruttare questa caratteristica con PHP, fornendo al contempo un'alternativa qualora non fosse supportata dal server.
HTTP_X_REQUESTED_WITH
La verifica da fare è la seguente:
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
// gestisce la richiesta AJAX
}
// altrimenti continua normalmente
La parte importante della verifica è la gestione dei dati in AJAX. Per esempio si può memorizzare un output da restituire al client e quindi uscire dallo script:
$content = get_content();
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
// gestisce la richiesta AJAX
die($content);
}
// altrimenti continua normalmente
L'alternativa
L'alternativa è usare un parametro aggiuntivo da allegare alla richiesta:
$ajax = $_POST['ajax'];
if(isset($ajax) && $ajax == 'on') {
// gestisce la richiesta AJAX
}
// altrimenti continua normalmente
Ovviamente se usate un framework dovreste utilizzare le routine di gestione AJAX del vostro framework e quasi sicuramente non avrete bisogno di ulteriori verifiche, che in genere si applicano solo quando state scrivendo il codice da zero.