1、前端处理后端返回的二进制流文件
var xhr = new XMLHttpRequest();
("post", "/download/scoreFile", true);
= "blob"; //重点:设置接收类型
= function() {
if ( == 200) {
var url = ();
var a = ("a");
if(!a){
a = ("a");
("id", "aElem");
(a);
}
= url;
();
(url)
}
}
();
注意:如果后端接口返回的是二进制流数据,在发送请求时需要设置responseType=‘blob’,否则收到的数据将是乱码。
2、前端处理后端返回的二进制流乱码图片
var xhr = new XMLHttpRequest();
("get", "/verify", true);
= "arraybuffer"; //重点:设置接收类型
= function() {
if ( == 200) {
let img = ("img");
let imgBase = btoa(new Uint8Array().reduce((data, byte) => data +(byte),'')); //将返回数据转为为base64
= 'data:image/jpg|png;base64,' + imgBase
}
}
();
拓展
(obj) 方法会创建一个 DOMString,这个 URL 的生命周期和创建它的窗口中的 document 绑定。
语法:(obj)
参数说明:obj为 File 对象、Blob 对象或者 MediaSource 对象。
使用完后,最好调用() 释放内存;如果不主动释放内存,浏览器会在页面退出时自动释放。