2、前端頁面未設置字符集編碼;
3、需要在ajax中添加 request.responseType = “arraybuffer”;

經(jīng)過不斷測試,我的應該是第三點導致。但在jquery ajax 中添加后仍然不起作用,亂碼問題始終無法解決。

第二版

主要代碼

前端,使用原生的ajax。后端未變動。

var xhr = new XMLHttpRequest();
xhr.responseType = "arraybuffer"; 
xhr.open("POST", url, true);
xhr.onload = function () {
 const blob = new Blob([this.response], {type:"application/vnd.ms-excel"});
 if(blob.size < 1) {
  alert('導出失敗,導出的內(nèi)容為空!');
  return;
 }
 if(window.navigator.msSaveOrOpenBlob) {
  navigator.msSaveOrOpenBlob(blob, 'test.xls')
 } else {
  const aLink = document.createElement('a');
  aLink.style.display = 'none';
  aLink.href = window.URL.createObjectURL(blob);
  aLink.download = 'testxls';
  document.body.appendChild(aLink);
  aLink.click();
  document.body.removeChild(aLink);
  return;
 }
}
xhr.setRequestHeader("Authorization", "xxx");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(JSON.stringify(queryParams));

測試結(jié)果

下載的excel不再亂碼,原生ajax中使用 “arraybuffer” 使用是生效的。

總結(jié)

“arraybuffer” 這個參數(shù)導致的excel導出亂碼,在原生的ajax中設置是有效的,在jquery的ajax中暫時還沒找到生效的方式。

更多關(guān)于云服務器,域名注冊,虛擬主機的問題,請訪問西部數(shù)碼官網(wǎng):www.ps-sw.cn

贊(0)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享網(wǎng)絡內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-62778877-8306;郵箱:fanjiao@west.cn。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明出處:西部數(shù)碼知識庫 » ajax實現(xiàn)excel報表導出的詳解

登錄

找回密碼

注冊

永安市| 仪征市| 澄江县| 肥西县| 绩溪县| 松溪县| 阳曲县| 桐庐县| 阿瓦提县| 元谋县| 江北区| 漳平市| 云龙县| 宝应县| 福安市| 牡丹江市| 孟村| 扬中市| 巨野县| 汉沽区| 洛宁县| 信阳市| 咸丰县| 同德县| 龙游县| 麦盖提县| 凌源市| 凤城市| 永嘉县| 兴义市| 库尔勒市| 民丰县| 黄大仙区| 乌什县| 德清县| 金堂县| 富川| 阿克陶县| 南溪县| 文安县| 襄垣县|