axios({ method: 'post', url: 'url....', data:{}, timeout: 1000*60, responseType: 'blob',// 此選項必須設置 否則保存后的文件無法播放 headers: { 'X-Requested-With': 'XMLHttpRequest', 'Content-Type': 'application/json; charset=UTF-8', } }).then((response) => { if (response && (response.status === 200 || response.status === 304 || response.status === 400)) { var fileName = response.headers['content-disposition'].split(';')[1].split('=')[1]; var contentType = response.headers['content-type']; var blob = new Blob([response.data])
//如果是IE 通過msSaveBlob 下載 ,否則走h5下載 if(navigator.msSaveBlob){ navigator.msSaveBlob(blob, fileName); }else{ var a = document.createElement('a'); a.download = fileName; a.innerHTML = 'download'; a.href = URL.createObjectURL(blob);
//自定義事件觸發 var event = document.createEvent('MouseEvents'); event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); a.dispatchEvent(event); URL.revokeObjectURL(a.href) // 釋放URL 對象 } return '下載成功!'; } else { return '網絡異常'; } }).catch(error=>{
return '網絡異常';
})