前端下載文件成功,但打不開

前端通過后端返回的文件流下載excel文件方法如下:

downloadExlFile(data, fileName) {
  let blob = new Blob([data], {
    type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=utf-8'
  })
  let a = document.createElement('a')
  let url = window.URL.createObjectURL(blob)
  a.href = url
  a.download = fileName
  document.body.appendChild(a)
  a.style.display = 'none'
  a.click()
  window.URL.revokeObjectURL(url)
}

但是我遇到一個問題:就是下載文件成功了但是打不開,一看是文件損壞。

后來瀏覽了好多篇文章后發(fā)現(xiàn),就因為main.js中引入了mock.js,但其實并沒有使用,就算沒有使用也會攔截到我的接口請求并改變返回的內(nèi)容

這是被改變后的樣子,就算接口請求里面responseType設(shè)置為blob,但輸出接口返回仍然是下面的這個樣子,且request被改為MockXMLHttpRequest

image.png

正常的應(yīng)該是返回data為Blob對象,request是一個XMLHttpRequest對象

image.png

結(jié)論就是,在main.js中注釋掉mock.js就好啦!~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容