1.创建a标签并点击
let a = document.createElement('a');
a.href =url;
a.download = 'name.xlsx';
a.click();
2.如果只是替换了当前路由并预览的话,可以强制浏览器下载
var pdfUrl = "" // 替换为你的PDF文件链接
fetch(pdfUrl).then(response => response.blob()).then(blob => {var link = document.createElement('a');link.href = window.URL.createObjectURL(blob);link.download = row.name; // 你想要保存的文件名document.body.appendChild(link);link.click();document.body.removeChild(link);}).catch(error => console.error('Error downloading the PDF:', error));
原因:有些浏览器的默认行为导致
1.服务器响应头:如果服务器返回的响应头重包含 Content-Disposition: inline
或未设置,浏览器则会倾向于直接预览文件而不是下载。这种情况下也可以设置响应头位Content-Dispositionin: attachment,这样浏览器就会提示用户下载文件
,有时候也会优先进行预览。
2.文件类型:PDF等文件类型有默认的预览行为,这种情况下,即使设置了download