之前實現導出Excel,都是用form表單提交,由於jquery封裝的ajax請求導出Excel,瀏覽器不顯示文件。html
可是此次的需求要帶着header,form表單不能帶header,百度了下,原生ajax是支持導出Excel的二進制數據格式的。jquery
一、JS方法裏所有代碼ajax
//原生ajax var xhr = new XMLHttpRequest(); //post方式請求後臺的路徑 xhr.open('post', '/api/export', true); //導出的Excel是二進制數據類型,因此設置爲blob xhr.responseType = 'blob'; //請求頭(key,value),請求頭能夠設置多個key-value對 xhr.setRequestHeader('Content-Type', 'application/json;charset=utf-8'); //返回成功,導出的Excel文件 xhr.onload = function () { if (this.status == 200) { var blob = this.response; var a = document.createElement('a'); var url = window.URL.createObjectURL(blob); a.href = url; //設置文件名稱 a.download = 'Excel文件名字.xlsx'; a.click(); } } var feeDate = $('#feeDate').val(); //請求的參數,json格式,後臺要用json格式接收 xhr.send(JSON.stringify({ "feeDate" : feeDate }));
form表單導出Excel,請參照json