2016-10-28 4 views
1

Ich fordere einige Daten über XMLHttpRequest. Wenn ich versuche, das Ergebnis als Datei zu speichern, habe ich die Größe der Datei geändert, und die Datei wird unlesbar.Wie vermeide ich es, die BLOB-Größe zu ändern?

args.response.length 
//9214 
new Blob([args.response], {type: args.mime}) 
//Blob {size: 12252, type: "application/vnd.ms-excel;charset=utf-8"} 

Wie könnte ich diese Neucodierung vermeiden und die Datei speichern, wie sie als Antwort kommt?

+0

Was ist 'args.response'? Was ist "args.responseType"? Es sollte schon ein Blob sein, damit Sie nichts ändern müssen. – Bergi

Antwort

1

XMLHttpRequest gibt eine von mehreren Arten von Daten zurück. DOMString-, ArrayBuffer-, Blob-, Document-, JSON-, Text- und Browser-spezifische Typen. Sie können sie alle hier sehen: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/response

Mehr als wahrscheinlich ist der Typ etwas wie ein String, der eine kürzere Länge hat (wegen 2-Byte-Zeichen und so) als die Byte-Darstellung.

+0

Vielen Dank! Du hast mir einen Hinweis gegeben! – Serge

+0

Super! Freut mich zu hören, dass es für dich funktioniert. – PaulBGD

1

Nach der Antwort von PaulBGD habe ich die Lösung gefunden. Die XMLHttpRequest gab mir die leere responseType zurück, die wie DOMString behandelt wurde. Habe ich nur noch

xhr.responseType = 'blob';

nach dem Wunsch offen und es funktioniert super.

Verwandte Themen