一般下載都是給一個下載文件地址
然后前端拿到這個絕對路徑
a鏈接打開就是下載是吧
但是有些后端,偏偏就是用post接口,返回一個二進制文件流
可能這樣不用寫入本地(服務器)吧。
不用清理管理和維護
解決辦法
// 導出excel function postExcelFile(data, url) { var form = document.createElement('form'); //創建form標簽 form.setAttribute("style","display:none"); form.setAttribute("method","post");//設置請求方式 var exportData = '' //設置發送后台數據 for(var key in data){ if(data.hasOwnProperty(key)){ if (data[key]) { exportData += key + '=' + data[key] + '&' } } } form.setAttribute("action",baseUrl+url+"?"+exportData); //action屬性設置請求路徑 document.body.appendChild(form); //頁面添加form標簽 var input1 = document.createElement("input") //創建input標簽 input1.setAttribute("type","hidden") //設置隱藏域 form.appendChild(input1); form.submit();//表單提交即可下載! document.body.removeChild(form); //頁面刪除form標簽 } /** * 點擊導出按鈕 * @param obj 導出的數據 */ $('.export').click(function(e) { postExcelFile(param,exportUrl); //param為from Data格式的參數,exportUrl為請求地址 }
ie8是支持的,現代瀏覽器就更不用說了