后端返回可下载的xlsx文件,但是前端接收下载后为乱码

我的接收数据进行处理的代码为:

javascript 复制代码
 download_signal_list() {
   return new Promise((resolve, reject) => {
     get_download_signal({
       project_id: this.projectId,
       version_id: this.versionId
     }).then(response => {
       const url = window.URL.createObjectURL(new Blob([response.data]))
       const link = document.createElement('a')
       link.href = url
       const timestamp = this.gettimestamp(new Date().getTime() / 1000)
       const filename = timestamp + '-信号对接表.xlsx'
       link.setAttribute('download', filename)
       document.body.appendChild(link)
       link.click()
     }).catch(error => {
       reject(error)
     })
   })
 },

确实可以下载下来,但是打开后为乱码。

解决办法:

后端传的是blob类型文件,所以前端接收时也要限制一下类型,

接收的请求代码配置为:

javascript 复制代码
export function get_download_signal(data) {
  return request({
    url: baseURL + 'mf_project/signal_docking/download_signals',
    method: 'get',
    params: data,
    responseType: 'blob'		// 一定一定要加上
  })
}

之后再下载就可以正确显示啦

相关推荐
ShineWinsu22 分钟前
对于JavaScript:操作元素的解析
开发语言·前端·javascript·面试·web·dom·元素
福兮说1 小时前
JSON 格式正确,数据就可靠吗?我用一份自编配置检查类型与空值
java·前端·json
程序员老赵3 小时前
Docker 部署青龙面板:轻松搭建定时任务管理平台
前端·docker·开源
Swot3 小时前
Asciidoctor 公式数字下标错位问题:原因分析与解决方案
前端
Swot3 小时前
leo-editor 中将 Markdown 内容转成 asciidoc 格式
前端
狒狒AI3 小时前
Remotion / GSAP+Three / HyperFrames / Skia 四栈实测:代码渲染知识视频的选栈方法(附开源技能)
前端·人工智能·aigc
修炼的dance3 小时前
浏览器里导出H.265,8.5秒和55.5秒差在硬件
前端
补码缩写3 小时前
WebCodecs选编码器,探测之后还要验解码和播放
前端
大文说跨境3 小时前
亚马逊多账号管理浏览器怎么选?云登/紫鸟/AdsPower 对比
java·前端·自动化
hunter_0763 小时前
iOS 首页复杂嵌套滚动技术方案:头部固定 + 网格滚动 + Tab 吸顶 + 每 Tab 独立下拉刷新
前端