Per Ajax ist ein Upload _unmöglich_ (Sicherheitsvorkehrung)
Nichts ist unmöglich!
Doch!
Per AJAX ist ein Dateiupload unmöglich, weil Javascript keinerlei Zugriff auf lokal gespeicherte Dateien hat.
Wenn du aber mit Javascript nicht an die Datei herankommst, die per AJAX hochgeladen werden soll, kannst du den Dateiinhalt auch nicht in den AJAX-POST-Request packen. So einfach ist das.
Zum Dateiupload ist immer noch ein stinknormales Formular mit einem stinknormalen Submit-Vorgang erforderlich.
Dass man zur Wahrung des AJAX-Scheins das Upload-Ergebnis ggf. in ein winziges IFRAME (mit target im <form>) schickt, oder den Upload mit HTTP-Statuscode 204 beantwortet, ist eine komplett andere Geschichte. Aber solch ein Vorgang ist nicht AJAX.
Es gibt für jedes Problem immer eine Lösung - es stellt sich nur die Frage, wie lang man bereit ist, diese zu suchen.
Finde einfach heraus, wie du per Javascript auf den Inhalt lokal gespeicherter Dateien zugreifen und diese auslesen kannst, und schon wirst du reich - entweder, weil du diese Methode als Zero-Day-Exploit teuer an interessierte Bösewichte verkaufen, oder weil du dann als gefragter Experte über passende Kongresse tingeln kannst.