Per servire contenuti diversi, dovrebbe essere utilizzata la negoziazione del contenuto corretta. Il tipo di contenuto di base su alcune intestazioni personalizzate anziché l'intestazione di richiesta Accept
rende le cose più complesse di quanto debbano essere. Tuttavia, hai ragione che questo potrebbe essere uno dei motivi, implementato da una persona che non aveva familiarità con HTTP.
Un'altra possibilità sarebbe quella di rendere il sistema più sicuro. Sebbene questo sia un modo sbagliato per proteggere il sistema (poiché la restrizione può essere facilmente aggirata dal client aggiungendo l'intestazione richiesta), impedisce ai robot semplicistici di testare le combinazioni utente / password, " come dichiarato da amon .
Una terza possibilità sarebbe quella di assicurarsi che le richieste di accesso vengano sempre effettuate tramite AJAX (per alcuni motivi criptici). In questo modo, se il codice lato client viene modificato in modo da eseguire POST ordinario per l'accesso, sarà presto possibile capire che qualcosa è andato storto, dal momento che l'accesso non funzionerà più.
Nessuno di questi motivi è abbastanza strong da giustificare l'uso dell'intestazione personalizzata:
-
La negoziazione del contenuto dovrebbe essere eseguita utilizzando il meccanismo HTTP standard. Non è necessario reinventare la ruota solo per rendere la manutenzione più difficile di quanto non sia necessario.
-
La sicurezza dovrebbe essere gestita correttamente, usando procedure di sicurezza standard. L'argomento è troppo grande per essere descritto in una risposta, quindi vedi Security.SE e i libri sull'argomento, se interessati.
-
Se esiste un motivo valido per effettuare solo accessi AJAX, il codice dovrebbe essere modificato per rendere questo motivo molto esplicito. Se non ci sono motivi, dovrebbe consentire sia le azioni di accesso AJAX che quelle non AJAX per rendere possibile l'utilizzo del sito Web da parte di utenti che hanno disabilitato JavaScript. A seconda dell'applicazione, questo potrebbe non avere molto senso (se l'applicazione rimanente si basa completamente su JavaScript, non vi è alcun motivo per consentire tali utenti in ogni caso).