1、 問題
瀏覽器的兼容性問題一直是個令人頭痛的問題,開發的小夥伴應該都比較喜歡用chrome瀏覽器,兼容性比較強大,而就有些問題發生在其他一些瀏覽器上,尤其是IE,今天就記錄一個ie的坑——ie瀏覽器不支持通過a標籤下載文件,作爲一個後端菜鳥,還要去解決這種問題,心裏簡直一萬隻羊駝在奔騰…
2、解決方案
話不多說,直接貼代碼
this.axios.get("/estimate/downResource", {
params:{
fileName:fileNm
},
responseType: 'blob'
}).then(response => {
if (window.navigator.msSaveBlob) { //IE以及IE內核的瀏覽器
try {
window.navigator.msSaveBlob(response, fileNm); //response爲接口返回數據,這裏請求的時候已經處理了,如果沒處理需要在此之前自行處理var data = new Blob([response.data]) 注意這裏需要是數組形式的,fileNm就是下載之後的文件名
// window.navigator.msSaveOrOpenBlob(response, fileNm); //此方法類似上面的方法,區別可自行百度
}catch (e) {
console.log(e);
}
}
this.download(response,fileNm) // chrome、firefox
至此,成功解決IE的下載文件問題