我有一个用于下载excel文件的API。 API网址为http://domain.com/export
。此文件的名称不可预测。另外,我需要在调用API URL时传递几个参数。
下载文件(JS,jQuery)的最佳方式是什么?
解决方案必须支持IE 9 +。
对于测试,我开发了一个隐藏的表单和jQuery提交。它可以工作,但最后,我需要将download
按钮放到表中的每一行,并导出与该行相关的数据。所以也许这不是最好的解决方案。
我的演示解决方案:
HTML
<form id="tool-export" method="post" action="export/">{% csrf_token %}
<a id="export-link" class="btn btn-sm btn-primary" href="#">DOWNLOAD</a>
</form>
JS
$('#export-link').click(function(e) {
window.onbeforeunload = null;
e.preventDefault();
var link = $(this);
var form = link.closest('form');
var project_id = proj_id.find(":selected").val();
var input = $('<input>').attr('type', 'hidden').attr('name', 'project_id').val(project_id);
form.append($(input));
var project_type = proj_type.val();
input = $('<input>').attr('type', 'hidden').attr('name', 'project_type').val(project_type);
form.append($(input));
form.submit();
});