1. 程式人生 > >ajax方式下載文件

ajax方式下載文件

a標簽 rem 標簽 blob his xlsx class req tar

<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方式下載文件