Non ho detto di salvare il file sul server, ma di utilizzare javascript per richiamare direttamente lo script di generazione del file (che forza il download), esattamente come fai con Ajax. La differenza tra quello che fai ora e la soluzione proposta e' che NON devi utilizzare XMLHTTPRequest per far generare il file al server, ma un semplice location.href (oppure form submit, se preferisci).