记录一次下载pdf/xsml的需求
记录一次下载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的需求相关推荐
- pdf.js插件使用记录,在线打开pdf
pdf.js插件使用记录,在线打开pdf 原文:pdf.js插件使用记录,在线打开pdf 天记录一个js库:pdf.js.主要是实现在线打开pdf功能.因为项目需求需要能在线查看pdf文档,所以就研究 ...
- 字节跳动大数据中心17万服务器硬实力支撑今日头条等产品线(公号回复“字节跳动”下载PDF典型资料,欢迎转发、赞赏支持科普)
字节跳动大数据中心17万服务器硬实力支撑今日头条等产品线(公号回复"字节跳动"下载PDF典型资料,欢迎转发.赞赏支持科普) 原创: 秦陇纪 科学Sciences 昨天 科学Scie ...
- 计算机的数学思想源头(回复“计算机数学”可下载PDF典藏版)
计算机的数学思想源头(回复"计算机数学"可下载PDF典藏版) 2018-04-16 数据简化DataSimp 数据简化DataSimp导读:前篇<计算机诞生的详细历史> ...
- 密码学历史及近40年人物技术里程碑(公号回复“密码学”下载PDF资料,欢迎转发、赞赏、支持科普)
密码学历史及近40年人物技术里程碑(公号回复"密码学"下载PDF资料,欢迎转发.赞赏.支持科普) 原创: 秦陇纪 科学Sciences 今天 科学Sciences导读:密码学是研究 ...
- java处理word插入数据转PDF及下载PDF
欢迎使用Markdown编辑器 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.引入jar包 二.使用步骤 1.前端上传电子签名图片 2.java下载电子签名图片 ...
- 神经网络、深度学习、人工智能、智能制造2018资料汇编(公号回复“AI2018资料”下载PDF资料,欢迎转发、赞赏支持科普)
神经网络.深度学习.人工智能.智能制造2018资料汇编(公号回复"AI2018资料"下载PDF资料,欢迎转发.赞赏支持科普) 秦陇纪 科学Sciences 今天 科学Science ...
- 项目中的那些事---下载pdf文件
最近做了一个下载pdf文档的需求,本以为使用HTML5中<a>标签的属性download就能简单搞定,不料IE竟然不支持这一简单粗暴的H5新特性,而是直接在网页中打开, 于是各种搜索之后得 ...
- 爱因斯坦论教育,放在首位的该是什么?1936年美国高等教育300周年会(公号回复“爱因斯坦教育”下载PDF典藏版,欢迎转发赞赏)
爱因斯坦论教育,放在首位的该是什么?1936年美国高等教育300周年会(公号回复"爱因斯坦教育"下载PDF典藏版,欢迎转发赞赏) 原创: 秦陇纪 知识简化 今天 知识简化导读:19 ...
- js下载PDF文件流,打开空白问题
记录一下前端下载后端返回的pdf文件流,显示空白问题. const blob = new Blob([content.data], {// type是需要对应的文件类型type:"appli ...
最新文章
- Android 音视频开发入门指南
- NLP基础 : HMM 隐马尔可夫模型
- Spring 集成web环境
- Unity超基础学习笔记(二)
- 深入浅出了解OCR识别票据原理(Applying OCR Technology for Receipt Recognition)
- sd卡怎么格式化?5个步骤轻松教会你
- go语言宕机(panic)——程序终止运行
- 联客云虚拟工作手机(云手机)应用行业及场景
- 10个重要的电子邮件ip黑名单组织以及如何解决删除
- 使用.NET 将PDF转成Word
- 文件上传漏洞之——漏洞进阶(读文件,写文件,包含图片马,包含日志文件,截断包含)
- 风控中的EAD、PD与LGD模型都有啥区别?
- JPA的@Query用法
- 打造一个属于自己的ip代理工具 ProxyRoot
- HCIP H12-221 题库 71-120题 讲解
- 龙卷风网络收音机(CRadio) v2.96最新版下载
- AspectJ 使用及原理
- 台式计算机显卡是哪个好,台式电脑显卡哪款好 台式电脑显卡推荐
- 信息安全第一位,天生创想做最安全的OA政务办公系统
- 自动驾驶数据掘金就像大海捞鱼,你有什么样的捕鱼工具?丨WAIC2021
热门文章
- 软件单元黑盒测试,软件测试教学资源单元3 黑盒测试.doc
- 在字符串中输入回车换行或其它特殊字符
- html图片显示详情,纯CSS鼠标经过图片视差弹出层显示详情链接按钮特效代码.html...
- 火焰纹章16进制是怎么算_火焰是值得你的时间
- 期货商品技术分析(期货市场技术分析)
- Linux学习-02-Linux的安装
- Android 最简单的自定义证件照Mask之一
- 数据结构几类排序的总结和完整代码 待续。。
- Elasticsearch Index Lifecycle Management (ILM)
- 周六 第八章 iptable