errato, se ometti var qualunque variabile diventa globale e nel tuo caso, essendo sul browser, scrivereOriginariamente inviato da Crypt
la variabile response che funziona solo all'interno di quella funzione.
oppurecodice:response = "pippo";
è esattamente la stessa cosa, ergo senza var response sarà globale.codice:window.response = "pippo";
Il tuo problema è un altro, non hai ben chiaro il significato di asincrono (e non conosci le best practices Ajax, dato che fai N chiamate in un ciclo for ...) e ti aspetti che il return di onreadystatechange venga assegnato/eseguito come qualunque funzione.
Consiglio una lettura di un qualunque articolo/guida su Ajax, prima di proseguire![]()