记录一次下载pdf/xsml的需求

PC端需要下载pdf/xls文件,但是有可能生成的文件还没有存放到OSS服务器上。所以需要先判断路径是否404,成功之后再使用a标签下载。这个需求在一个vue项目中,但是使用axios无法实现判断404,因为无论是否404,axios的then和catch都会执行。

getAjax(scope) {let _this = thisif(!scope.prefixURL || !scope.filePath) {this.$confirm("暂无账单,当日的账单将在16:30左右更新", "提示", {showCancelButton: false,confirmButtonText: "确定",type: "warning"})return false}const fullpath = scope.prefixURL + scope.filePath//发送Ajax的步骤//第一步: 创建XMLHttpRequest对象var xhr = null;if (window.XMLHttpRequest) {//如果浏览器存在这个对象 则以这种方式创建xhr = new XMLHttpRequest();} else {//否则 以下面这种方式xhr = new ActiveXObject("Microsoft.XMLHTTP");}//第二步 准备发送 调用opent方法 (有三个参数) 拼接数据xhr.open("GET", fullpath, true);xhr.setRequestHeader("Content-Type", "application/pdf");xhr.responseType = "blob";//第三步 发送 调用send方法xhr.send(null); //get请求 为null//第四步处理请求 绑定事件onreadystatechangexhr.onreadystatechange = function() {// 状态为4 表示收到数据if (xhr.readyState === 4) {//状态码为 200 表示数据完整if (xhr.status === 200) {const blob = xhr.response;const reader = new FileReader();reader.readAsDataURL(blob);    // 转换为base64,可以直接放入a的hrefreader.onload = function (e) {// 转换完成,创建一个a标签用于下载const name=fullpath.substring(fullpath.lastIndexOf("/")+1);const a = document.createElement('a');a.download = name;a.href = e.target.result;document.body.appendChild(a);    // 修复firefox中无法触发clicka.click();document.body.removeChild(a);}} else {_this.$confirm("账单生成中,请稍后再试...", "提示", {showCancelButton: false,confirmButtonText: "确定",type: "warning"})}}}}

记录一次下载pdf/xsml的需求相关推荐

  1. pdf.js插件使用记录,在线打开pdf

    pdf.js插件使用记录,在线打开pdf 原文:pdf.js插件使用记录,在线打开pdf 天记录一个js库:pdf.js.主要是实现在线打开pdf功能.因为项目需求需要能在线查看pdf文档,所以就研究 ...

  2. 字节跳动大数据中心17万服务器硬实力支撑今日头条等产品线(公号回复“字节跳动”下载PDF典型资料,欢迎转发、赞赏支持科普)

    字节跳动大数据中心17万服务器硬实力支撑今日头条等产品线(公号回复"字节跳动"下载PDF典型资料,欢迎转发.赞赏支持科普) 原创: 秦陇纪 科学Sciences 昨天 科学Scie ...

  3. 计算机的数学思想源头(回复“计算机数学”可下载PDF典藏版)

    计算机的数学思想源头(回复"计算机数学"可下载PDF典藏版) 2018-04-16 数据简化DataSimp 数据简化DataSimp导读:前篇<计算机诞生的详细历史> ...

  4. 密码学历史及近40年人物技术里程碑(公号回复“密码学”下载PDF资料,欢迎转发、赞赏、支持科普)

    密码学历史及近40年人物技术里程碑(公号回复"密码学"下载PDF资料,欢迎转发.赞赏.支持科普) 原创: 秦陇纪 科学Sciences 今天 科学Sciences导读:密码学是研究 ...

  5. java处理word插入数据转PDF及下载PDF

    欢迎使用Markdown编辑器 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.引入jar包 二.使用步骤 1.前端上传电子签名图片 2.java下载电子签名图片 ...

  6. 神经网络、深度学习、人工智能、智能制造2018资料汇编(公号回复“AI2018资料”下载PDF资料,欢迎转发、赞赏支持科普)

    神经网络.深度学习.人工智能.智能制造2018资料汇编(公号回复"AI2018资料"下载PDF资料,欢迎转发.赞赏支持科普) 秦陇纪 科学Sciences 今天 科学Science ...

  7. 项目中的那些事---下载pdf文件

    最近做了一个下载pdf文档的需求,本以为使用HTML5中<a>标签的属性download就能简单搞定,不料IE竟然不支持这一简单粗暴的H5新特性,而是直接在网页中打开, 于是各种搜索之后得 ...

  8. 爱因斯坦论教育,放在首位的该是什么?1936年美国高等教育300周年会(公号回复“爱因斯坦教育”下载PDF典藏版,欢迎转发赞赏)

    爱因斯坦论教育,放在首位的该是什么?1936年美国高等教育300周年会(公号回复"爱因斯坦教育"下载PDF典藏版,欢迎转发赞赏) 原创: 秦陇纪 知识简化 今天 知识简化导读:19 ...

  9. js下载PDF文件流,打开空白问题

    记录一下前端下载后端返回的pdf文件流,显示空白问题. const blob = new Blob([content.data], {// type是需要对应的文件类型type:"appli ...

最新文章

  1. Android 音视频开发入门指南
  2. NLP基础 : HMM 隐马尔可夫模型
  3. Spring 集成web环境
  4. Unity超基础学习笔记(二)
  5. 深入浅出了解OCR识别票据原理(Applying OCR Technology for Receipt Recognition)
  6. sd卡怎么格式化?5个步骤轻松教会你
  7. go语言宕机(panic)——程序终止运行
  8. 联客云虚拟工作手机(云手机)应用行业及场景
  9. 10个重要的电子邮件ip黑名单组织以及如何解决删除
  10. 使用.NET 将PDF转成Word
  11. 文件上传漏洞之——漏洞进阶(读文件,写文件,包含图片马,包含日志文件,截断包含)
  12. 风控中的EAD、PD与LGD模型都有啥区别?
  13. JPA的@Query用法
  14. 打造一个属于自己的ip代理工具 ProxyRoot
  15. HCIP H12-221 题库 71-120题 讲解
  16. 龙卷风网络收音机(CRadio) v2.96最新版下载
  17. AspectJ 使用及原理
  18. 台式计算机显卡是哪个好,台式电脑显卡哪款好 台式电脑显卡推荐
  19. 信息安全第一位,天生创想做最安全的OA政务办公系统
  20. 自动驾驶数据掘金就像大海捞鱼,你有什么样的捕鱼工具?丨WAIC2021

热门文章

  1. 软件单元黑盒测试,软件测试教学资源单元3 黑盒测试.doc
  2. 在字符串中输入回车换行或其它特殊字符
  3. html图片显示详情,纯CSS鼠标经过图片视差弹出层显示详情链接按钮特效代码.html...
  4. 火焰纹章16进制是怎么算_火焰是值得你的时间
  5. 期货商品技术分析(期货市场技术分析)
  6. Linux学习-02-Linux的安装
  7. Android 最简单的自定义证件照Mask之一
  8. 数据结构几类排序的总结和完整代码 待续。。
  9. Elasticsearch Index Lifecycle Management (ILM)
  10. 周六 第八章 iptable