如何避免更改BLOB大小?

问题描述:

我通过XMLHttpRequest索取一些数据。 当我尝试将结果保存为文件时,我已经更改了文件的大小,并且文件变得无法读取。如何避免更改BLOB大小?

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

我怎么能避免这种重新编码和保存文件,因为它的响应?

+0

什么是'args.response'?什么是'args.responseType'?它已经应该是一个blob,所以你不必改变任何东西。 – Bergi

XMLHttpRequest返回几种类型的数据之一。 DOMString,ArrayBuffer,Blob,Document,JSON,Text和浏览器特定类型。你可以在这里看到它们:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/response

更可能的类型就像一个字符串,其长度比字节表示更短(由于2字节字符等)。

+0

非常感谢!你给了我一个提示! – Serge

+0

太棒了!很高兴听到它为你工作。 – PaulBGD

PaulBGD的答案我找到了解决办法。 XMLHttpRequest给我返回的空responseType被视为DOMString。我只是说

xhr.responseType = 'blob';

打开请求后,它的伟大工程。