Domanda

Esiste qualcosa nell'intestazione di una richiesta HTTP che mi consenta di distinguere tra una chiamata AJAX e una richiesta diretta del browser da un determinato client? Le stringhe dell'agente utente sono generalmente le stesse indipendentemente?

È stato utile?

Soluzione

Se usi Prototype, jQuery, Mootools o YUI dovresti trovare un'intestazione X-Requested-With: XMLHttpRequest che farà al caso tuo. Dovrebbe essere possibile inserire qualsiasi intestazione che ti piace con altre librerie.

Al livello più basso, dato un oggetto XMLHttpRequest o XMLHTTP, puoi impostare questa intestazione con il metodo setRequestHeader come segue:

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

Altri suggerimenti

Dopo alcune ricerche, sembra che l'approccio migliore sarebbe semplicemente specificare una stringa dell'agente utente personalizzato quando si effettuano chiamate AJAX e quindi verificare la presenza di questa stringa dell'agente utente personalizzato sul server.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top