ajax方式下載文件
阿新 • • 發佈:2018-07-18
a標簽 rem 標簽 blob his xlsx class req tar
<button type="button" onclick="download()">導出</button> function download() { var url = ‘download/?filename=aaa.txt‘; var xhr = new XMLHttpRequest(); xhr.open(‘GET‘, url, true); // 也可以使用POST方式,根據接口 xhr.responseType = "blob"; // 返回類型blob // 定義請求完成的處理函數,請求前也可以增加加載框/禁用下載按鈕邏輯xhr.onload = function () { // 請求完成 if (this.status === 200) { // 返回200 var blob = this.response; var reader = new FileReader(); reader.readAsDataURL(blob); // 轉換為base64,可以直接放入a表情href reader.onload = function (e) {// 轉換完成,創建一個a標簽用於下載 var a = document.createElement(‘a‘); a.download = ‘data.xlsx‘; a.href = e.target.result; $("body").append(a); // 修復firefox中無法觸發click a.click(); $(a).remove(); } } };// 發送ajax請求 xhr.send() }
原文鏈接:https://my.oschina.net/watcher/blog/1525962
ajax方式下載文件