原本使用url是可以直接用window.href = url 来下载,但是这样的话会因为同源问题而download属性设置不生效导致文件 名还是下载的时候的url后缀文件名,使用这种方式的话文件名就生效
const xhr = new XMLHttpRequest();
xhr.open(‘GET’, ‘url’, true);
xhr.responseType = ‘blob’;
xhr.onload = function() {
if (this.status === 200) {
const blob = new Blob([this.response]);
const blobUrl = window.URL.createObjectURL(blob);
const a = document.createElement(‘a’);
a.href = blobUrl;
a.download = fileName;
a.click();
window.URL.revokeObjectURL(blobUrl);
}
};
xhr.send();