Non ho guardato i file javascript, ma da quel poco che ho capito finora di AJAX il file login.php dovrebbe essere quello richiamato da js e il cui output è quindi intercettato dallo stesso.
Se è così mi chiedo a cosa servano gli header "per evitare problemi di cache": si riferiscono a eventuali proxy intermedi?
Mi sorge anche un'altra domanda: se invece di utilizzare i cookie avessi aperto una sessione, avresti poi dovuto gestire il cookie di sessione attraverso il codice javascript?