乾貨:blob匯出檔案亂碼解決方案
這個bug太太太太,磨人了 ,從昨天下午找到今天下午!!!吐血了
直入正題:
後臺返回是這樣的:看圖 ↓
我的匯出程式碼是這樣的:
export function exportExcel(url, params = {}) {
return new Promise((resolve, reject) => {
axios({
method: "get",
url: url, // 請求地址
params,
responseType: "blob" // 表明返回伺服器返回的資料型別
}).then(
(response) => {
resolve(response);
console.log(response)
let blob = new Blob([response], {
type: "application/vnd.ms-excel"
});
console.log(blob);
let fileName = "匯出單據" + Date.parse(new Date()) + ".xls";
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob, fileName);
} else {
let link = document.createElement("a");
link.href = window.URL.createObjectURL(blob);
link.download = fileName;
link.click();
// 釋放記憶體
window.URL.revokeObjectURL(link.href);
}
},
(err) => {
reject(err);
}
);
});
}
確認過眼神,這是沒有問題的! 但是匯出下載後開啟是這樣的:↓
然後我找啊找,找了很久,網上方法都嘗試了。最後看到網上有盆友說可能是使用了mock模擬的原因,我就把mock的使用關掉了(沒有設定開關的盆友就可以在引入的位置註釋)。
就成功匯出了。。。。。踩坑太累了。。。。
額,更新一下,看了下我的程式碼,發現一點問題:
當responseType設定為‘blob’的時候,後臺返回就是blob物件了,前端 不用 再去new Blob 了,下面就是列印的返回結果:
所以拿到結果就可以直接用了,從新修改程式碼:
export function exportExcel(url, params = {}) {
return new Promise((resolve, reject) => {
axios({
method: "get",
url: url, // 請求地址
params,
responseType: "blob" // 表明返回伺服器返回的資料型別
}).then(
(response) => {
resolve(response);
console.log(response)
// 前面responseType設定的 “blob” 後臺返回的response直接就是 blob物件,前端不用再去new Blob了
// let blob = new Blob([response], {
// type: "application/vnd.ms-excel"
// });
// console.log(blob);
let fileName = "匯出單據" + Date.parse(new Date()) + ".xls";
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(response, fileName);
} else {
let link = document.createElement("a");
link.href = window.URL.createObjectURL(response);
link.download = fileName;
link.click();
// 釋放記憶體
window.URL.revokeObjectURL(link.href);
}
},
(err) => {
reject(err);
}
);
});
}
相關文章
- c#匯出檔案,檔名中文亂碼解決方法C#
- 解決PHP匯出CSV檔案中文亂碼問題PHP
- MySQL直接匯出CSV檔案,並解決中文亂碼的問題MySql
- 匯入sql檔案出現亂碼SQL
- 【Salesforce問題解決】Dataloader匯出的檔案亂碼或者問號的解決辦法Salesforce
- Excel開啟CSV檔案出現亂碼怎麼辦?Excel開啟csv檔案出現亂碼的解決方法Excel
- 解決Java POI 匯出Excel時檔名中文亂碼,相容瀏覽器JavaExcel瀏覽器
- Python:Python中文寫入csv檔案出現亂碼問題的解決方案之一Python
- Excel開啟csv檔案出現亂碼的解決辦法Excel
- 小程式批次匯入excel資料,雲開發資料庫匯出cvs亂碼解決方案Excel資料庫
- vue專案前端匯出word檔案(bug解決)Vue前端
- office for Mac Excel匯入csv檔案亂碼MacExcel
- 管理工具匯入CSV檔案,中文資料亂碼的解決辦法。
- 行業乾貨-如何逆向解決QT程式漢化亂碼問題行業QT
- AndroidStudio Build Output亂碼解決方案AndroidUI
- 解決excel開啟.csv檔案亂碼問題Excel
- python檔案中寫中文亂碼怎麼解決Python
- cat開啟檔案正常vim開啟檔案中文亂碼解決方法
- vscode中文亂碼怎麼解決 vscode輸出亂碼怎麼解決VSCode
- linux Typora修改Windows檔案產生亂碼(未解決)LinuxWindows
- Oracle 生僻字亂碼解決方案Oracle
- linux下解壓部分zip檔案存在亂碼解決辦法Linux
- Hadoop檢視檔案///hadoop 清洗檔案出現亂碼Hadoop
- tomcat啟動 ssm專案出現亂碼的解決TomcatSSM
- Eclipse Java類編輯器裡出現亂碼的解決方案EclipseJava
- MySQL字符集亂碼與解決方案MySql
- JavaWeb 亂碼問題終極解決方案!JavaWeb
- css中文字型亂碼解決方案CSS
- Linux終端中文菱形亂碼解決方案Linux
- navicat for mysql顯示中文亂碼解決方案MySql
- SpringBoot整合Redis亂碼原因及解決方案Spring BootRedis
- 解決Intellij IDEA中執行緩慢的問題,tomcat控制檯列印亂碼問題,國際化亂碼配置檔案亂碼解決IntelliJIdeaTomcat
- cat 輸出亂碼問題解決
- 乾貨:基於scss的主題配色解決方案CSS
- EXCEL大資料量匯出的解決方案Excel大資料
- jxl匯出中文標題亂碼
- Mysqldump匯出亂碼問題排查MySql
- win10系統下PDF檔案亂碼的解決方法Win10