Come fa richiesta :: is_ajax () opera in Kohana?
Domanda
In che modo Kohana determinare se una richiesta è un AJAX?
C'è qualcosa di diverso nella stringa di provenienza? Devo aggiungere un parametro GET, forse ?ajax=true
?
Soluzione
Controlla se la richiesta è fatta da XMLHttpRequest poiché la maggior parte del browser invia un colpo di testa in questo caso con questa indicazione:. Intestazione HTTP_X_REQUESTED_WITH
verrebbe impostato XMLHttpRequest
Altri suggerimenti
A partire dal v2.3.4
/**
* Tests if the current request is an AJAX request by checking the
* X-Requested-With HTTP request header that most popular JS frameworks
* now set for AJAX calls.
*
* @return boolean
*/
public static function is_ajax()
{
return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND
strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest');
}
Necro-posting, perché questo è venuto su in primo luogo la mia ricerca google.
Non so se Kohana funziona ancora in questo modo, ma utilizzando HTTP_X_REQUESTED_WITH non è più delle migliori pratiche.
richieste Ajax - tutte le richieste HTTP in realtà -. Dovrebbe inviare una "Accetto" intestazione
Qualsiasi processo sul lato server dovrebbe esaminare il "Accept" intestazione per determinare quali contenuti inviare in risposta. Un modo per fare questo in PHP è:
function is_ajax() {
return $_SERVER['HTTP_ACCEPT'] == 'application/json';
}