今天后台给了一个api, 返回的content-type是这种
// 二进制流数据
content-type: application/octet-stream
我收到的数据是这种
然后需要把这个转成一个excel文件
实现方法具体如下:
var url = url
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = "blob";
xhr.setRequestHeader("Authorization", token);
xhr.setRequestHeader("client_type", "DESKTOP_WEB");
xhr.onload = function() {
if (this.status == 200) {
var blob = this.response;
//这里导出src
var src = URL.createObjectURL(blob);
var link = document.createElement('a');
//设置下载的文件名
link.download = "filename";
link.style.display = 'none';
//设置下载路径
link.href = src;
//触发点击
document.body.appendChild(link);
link.click();
//移除节点
document.body.removeChild(link);
}
}
xhr.send();
这样就可以把后台返回的数据转换成我们想要的文件啦
ps: JQuery是不支持二进制流的,所以千万别用jq去请求(已采坑)