传统方法

按钮点击事件中使用 window.open 打开下载链接:

window.open('/download/exportdata');

这种方式会打开一个空白页面后消失,用户体验不佳。

优雅的用户体验

JS 构造 form 后提交

var $form = $('<form method="GET"></form>');
$form.attr('action', '/download/exportdata');
$form.appendTo($('body'));
$form.submit();

JS 构造 iframe

var iframe = document.createElement("iframe");
iframe.style.display = "none";
iframe.src = '/download/exportdata';
document.body.appendChild(iframe);

使用 download 属性的 a 标签

<a href="/download/exportdata" download="xxx.csv">download</a>