当前位置: 首页 > news >正文

前端GET请求下载后端返回数据流文件,并且处理window.open方法跳转白屏方法

 平时常用导出都是用window.open方法     点击跳转连接:使用 window.open 下载

const downError = `地址?&参数=${参数|| ''}`;
const downError = `Url+/xxx/xxx?&orgId=${orgId || ''}`;window.open(downError, "_self");//调用window.open方法导出

而使用window.open时有时候会出现接口异常、或者部分浏览器可能兼容性问题导致会跳转连接白屏的问题

现在用后端接口返回的数据流然后导出(切记添加responseType: 'blob',)

首先配置一下request
export const exportPersonnel = (params) => request({url: BaseUrl + '/xxx/xxxx',headers: {"Project-Id": params.projectId,},method: 'get',responseType: 'blob',		//非常关键!文件流方法params,
})
请求:
const params = {test: '参数1',test2: '参数2',
}this.props.dispatch({type: 'TimelySummary/exportArchiveInfo',payload: params,
}).then((ret: any) => {if (ret) {let blob = new Blob([ret],);let objectUrl = (window.URL || window.webkitURL).createObjectURL(blob);let downFile = document.createElement("a");let fileName = "孜然卷测试报表.xlsx";   //报表名downFile.style.display = "none";downFile.href = objectUrl;downFile.download = fileName;          // 下载后文件名document.body.appendChild(downFile);downFile.click();document.body.removeChild(downFile);   // 下载完成移除元素window.URL.revokeObjectURL(objectUrl); // 只要映射存在,Blob就不能进行垃圾回收,因此一旦不再需要引用,就必须小心撤销URL,释放掉blob对象。}
})

另外post请求可查看文章  点击跳转连接:POST请求导出后端返回数据流

http://www.lryc.cn/news/346639.html

相关文章:

  • SD321放大器3V输入电流电压保护二极管25C电源电流
  • geoserver SQL注入、Think PHP5 SQL注入、spring命令注入
  • scrapy的入门
  • 大数据Scala教程从入门到精通第七篇:Scala在IDEA中编写Hello World
  • 设计模式之数据访问对象模式
  • Spring aop切面编程
  • 如何更好地使用Kafka? - 事先预防篇
  • 如何解决 IPA 打包过程中的 “Invalid Bundle Structure“ 错误
  • Vuex:Vue.js 的状态管理库
  • 【简单介绍下Sass】
  • IM 是什么?
  • 俄罗斯方块的代码实现
  • 出海企业哪种组网方案更省事?
  • triton编译学习
  • 源码知识付费系统,在线教学平台需要优化什么?
  • 后端常用技能:解决java项目前后端传输数据中文出现乱码、问号问题
  • SpringBoot中使用MongoDB
  • 【TS】入门
  • Apache ECharts
  • 超详细的胎教级Stable Diffusion使用教程(四)
  • 串口属性中的BM延时计时器问题
  • PyQt6--Python桌面开发(8.QPlainTextEdit纯文本控件)
  • Java | Leetcode Java题解之第83题删除排序链表中的重复元素
  • 重生奇迹mu再生宝石怎么用有什么用
  • pdf 文件版面分析--pdfplumber (python 文档解析提取)
  • PostgreSQL的学习心得和知识总结(一百四十三)|深入理解PostgreSQL数据库之Support event trigger for logoff
  • https免费证书获取
  • C语言 | Leetcode C语言题解之第74题搜索二维矩阵
  • 杰发科技AC7840——软件Sent_HAL39X
  • IOS 开发 - block 使用详解