ajax方式下载文件

Posted 一江西流

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax方式下载文件相关的知识,希望对你有一定的参考价值。

<button type="button"  onclick="download()">导出</button>

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

以上是关于ajax方式下载文件的主要内容,如果未能解决你的问题,请参考以下文章

ajax下post提交方式下载文件的处理(转)

ajax方式下载文件

html PHP代码片段: - AJAX基本示例:此代码演示了使用PHP和JavaScript实现的基本AJAX功能。

代码适用于与单个 html 文件不同的堆栈片段

前端实现文件下载为什么不能用AJAX

AJAX相关JS代码片段和部分浏览器模型