如何避免更改BLOB大小?

时间:2016-10-28 08:10:36

标签: javascript

我通过XMLHttpRequest请求一些数据。 当我尝试将结果保存为文件时,我已经更改了文件大小,并且文件变得不可读。

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

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

2 个答案:

答案 0 :(得分:1)

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

类型很可能类似于String,其长度比字节表示的长度短(由于2字节字符等)。

答案 1 :(得分:1)

在PaulBGD回答之后我找到了解决方案。 XMLHttpRequest向我返回了被视为responseType的空DOMString。我刚刚添加了

xhr.responseType = 'blob';

请求打开后,效果很好。