由于Ajax请求不能直接下载文件,所以我们只能通过其他方式来实现,伪造一个表单来实现form提交实现下载功能,具体代码如下:(导出EXCEL)
1 //导出 2 $('#exportExcel').click(function() { 3 var form = document.createElement("form"); 4 form.method = "GET"; 5 form.action = topwin.baseUrl + "/api/LDSubApi/ExportList"; 6 document.body.appendChild(form); 7 var hideinput = document.createElement('input'); 8 hideinput.type = "hidden"; 9 hideinput.name = "subcontractid"; 10 hideinput.value = 1; 11 form.appendChild(hideinput); 12 form.submit(); 13 return form; 14 });
具体思路如下:
JS创建一个form,然后在form中追加隐藏域(即后台要接收的值),然后表单直接提交,后台接收到值处理,返回文件流,实现导出功能