Différenciation entre une requête AJAX Call / Browser

Y a-t-il quelque chose dans l'en-tête d'une requête HTTP qui me permette de différencier un appel AJAX et une demande de navigateur direct d'un client donné? Les chaînes d'agents utilisateurs sont-elles généralement les mêmes indépendamment?

Si vous utilisez Prototype, jQuery, Mootools ou YUI, vous devriez trouver un en tête X-Requis avec: XMLHttpRequest qui fera l'affaire pour vous. Il devrait être possible d'insérer n'importe quel en-tête que vous aimez avec d'autres bibliothèques.

Au niveau le plus bas, étant donné un objet XMLHttpRequest ou XMLHTTP, vous pouvez définir cet en-tête avec la méthode setRequestHeader comme suit:

xmlHttpRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); 

Après quelques recherches, il semble que la meilleure approche serait de spécifier simplement une chaîne d'agent utilisateur personnalisée lors de la réalisation d'appels AJAX et ensuite de vérifier cette chaîne d'agent utilisateur personnalisée sur le serveur.