博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ajax方式下载文件
阅读量:6068 次
发布时间:2019-06-20

本文共 953 字,大约阅读时间需要 3 分钟。

function download() {   var url = 'download/?filename=aaa.txt';   var xhr = new XMLHttpRequest();   xhr.open('GET', url, true);        // 也可以使用POST方式,根据接口   xhr.responseType = "blob";    // 返回类型blob   // 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑   xhr.onload = function () {       // 请求完成       if (this.status === 200) {           // 返回200           var blob = this.response;           var reader = new FileReader();           reader.readAsDataURL(blob);    // 转换为base64,可以直接放入a表情href           reader.onload = function (e) {               // 转换完成,创建一个a标签用于下载               var a = document.createElement('a');               a.download = 'data.xlsx';               a.href = e.target.result;               $("body").append(a);    // 修复firefox中无法触发click               a.click();               $(a).remove();           }       }   };   // 发送ajax请求   xhr.send()}

 原文链接:https://my.oschina.net/watcher/blog/1525962

转载于:https://www.cnblogs.com/zyl-Tara/p/9329127.html

你可能感兴趣的文章
Slog19_支配vue框架模版语法之v-bind
查看>>
网易云音乐接口+vue全家桶开发一款移动端音乐webApp
查看>>
[LeetCode] Island Perimeter
查看>>
python大佬养成计划----excel操作
查看>>
[LeetCode]括号生成(Generate Parentheses)
查看>>
机器学习从业人员到底做什么?
查看>>
Laravel-Action 对代码的改造
查看>>
联调环境快速部署——基于docker-compose的CI/CD实践
查看>>
【跃迁之路】【498天】刻意练习系列257(2018.06.18)
查看>>
vue 解决addRoutes动态添加路由后,刷新失效问题
查看>>
Java多线程基础(十一)——Future模式
查看>>
解决Retrofit多BaseUrl及运行时动态改变BaseUrl(二)
查看>>
【深入浅出MyBatis笔记】插件
查看>>
sublime常用基础插件合集
查看>>
React 重温之Render Props
查看>>
聊聊JerseyEurekaHttpClient的参数
查看>>
js 粘贴图片的应用(clipboardData)
查看>>
5分钟解决小程序的微信支付
查看>>
SpringBoot里的@Import使用
查看>>
Mac 配置Apache服务器详解
查看>>