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 '網絡異常';
})