hi,
Deine Experimente kenne ich,
na gottseidank ;)
den Zusammenhang mit der Diskussion hier leuchtet mir nicht ein.
Es hängt alles irgendwie miteinander zusammen, zupf Dir ein Haar aus der Nase und es juckt ganz woanders :)
JSON ist zur Übertragung von textuellen bzw. textuell serialisierbaren Daten gedacht und dafür gut geeignet. Für Binärdaten gibt es natürlich bessere Formate und ggf. auch bessere Übertragungsprotokolle als HTTP.
Ich wäre kein Programmierer, wenn mir auch diesbezüglich nichts einfallen würde, was programmiertechnisch den Unterschied zwischen Text und Binärdaten aufhebt bzw. transparent macht. Diesen Unterschied gibts auch nur, weil sich die Entwicklung in diese Richtung begeben hat, das ist auch gut so und hat seine Richtigkeit (Stichwort Kontext) schafft jedoch andererseits erhebliche Barrieren die gar nicht sein müssen, wenn altbekannte Algorithmen auf der Byte-Ebene konsequent genutzt werden.
Grundsätzlich findet der Transport von Daten per HTTP auf Byte-Ebene statt, egal, ob das Texte sind oder andere Oktetten mit Wertigkeiten von 0..255. Diesem Umstand zollt meine kleine Lib EAV.js und es ist nur ein klitzekleiner Parameter 'raw' welcher das Ding so universell macht: xhr.responseType = 'arraybuffer';
auch bei rein textlichen Geschichten.
Btw., den FileReader habe ich jetzt hier rausgenommen, Zeitaufwand: 5 Minuten :)
Und um auf die ursprüngliche Problemstellung zurückzukommen: Diese Anwendung arbeitet nach der alten Schule mit einer zackigen Parameter-Kontrollstruktur wo außer einem Upload mehrerer Image-Binaries auch noch andere Parameter im Spiel sind die allesamt in einer einzigen Klasse gehandled werden. So beinhaltet die Response in der als ArrayBuffer gesendeten Datenstruktur neben der PDF auch ein Feedback-Formular, womit weitere Parameter anfallen, sollte ein Benutzer auf die Idee kommen, da was reinzuschreiben.
Das kann sich sehen lassen, aber Hallo!