前后端分离Excle下载乱码问题

it2024-01-12  63

前端:vue+elementUI

后端:springCloud

前端请求方式 : ajax请求

this.$.ajax({ url :this.url + "/",              type : 'post',              data : formData,              contentType: false,              processData: false,              xhrFields: {withCredentials: true, responseType:'arraybuffer'},              headers : {'Access-Control-Allow-Origin': '*', "Authorization": this.ajaxRequest.getToken()},              success: function (res, textStatus, request) {             var downloadFile = document.createElement('a');             let blob = new Blob([res], {type : "application/vnd.ms-excel;charset=UTF-8"});             downloadFile.href = window.URL.createObjectURL(blob);             console.log(request.getResponseHeader('Content-disposition'));             downloadFile.download =  decodeURI(request.getResponseHeader('Content-disposition').split('filename=')[1] );                    downloadFile.click();                    window.URL.revokeObjectURL(downloadFile.href);                 }, error : function (res) {                   console.log(res)                } })

后端处理 :导出文件处理

// 输出Excel文件 OutputStream out = null; out = response.getOutputStream(); response.reset(); response.setCharacterEncoding("UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF8")); response.setContentType("application/vnd.ms-excel; charset=utf-8"); // 输出Excel内容,生成Excel文件 wb.write(out);

 

 

最新回复(0)