// 错误方法:
saveBlob(blob, fileName) {
const element = document.createElement('a');
element.setAttribute('download', fileName);
element.setAttribute('href', window.URL.createObjectURL(new Blob(blob)));
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
// 会报错
// TypeError: Failed to execute 'createObjectURL' on 'URL': Overload resolution failed.
因为Chrome更新后不支持这种用法
new Blob(blob)
, blob需要是数组格式
// 正确写法:
saveBlob(blob, fileName) {
const element = document.createElement('a');
element.setAttribute('download', fileName);
let binaryData = [];
binaryData.push(blob);
element.setAttribute('href', window.URL.createObjectURL(new Blob(binaryData)));
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
发现下载文件打不开问题:需修改请求头
{
method: 'get',
responseType: 'arraybuffer',
params
}