後端採用二進制流返回文件而不是常見的返回網絡URLajax
在antd-pro環境下後端
發送ajax請求時須要配置爲瀏覽器
config = { headers : { token : tokenHandler.getSessionByKey('token'), }, responseType : 'blob', };
獲取到數據以後,在對應modal中用異步實現下載網絡
* saveFile({ payload: {blob, fileName}}, { call }) { if (window.navigator.msSaveOrOpenBlob) { navigator.msSaveBlob(blob, fileName); } else { var link = document.createElement('a'); link.href = window.URL.createObjectURL(blob); link.download = fileName; //此寫法兼容可火狐瀏覽器 document.body.appendChild(link); var evt = document.createEvent("MouseEvents"); evt.initEvent("click", false, false); link.dispatchEvent(evt); document.body.removeChild(link); } },