js匯出excel
阿新 • • 發佈:2022-03-11
不能使用jquery的$.ajax(),$.axax不能請求下載,
使用原生ajax或模擬表單提交
原生ajax:
var xhr = new XMLHttpRequest(); xhr.open('POST', URL, true); xhr.responseType = 'arraybuffer'; xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.onload = function (e) { //var data = new Uint8Array(this.response); var blob = new Blob([this.response], { type: 'application/vnd.ms-excel,charset=utf-8' }); let url = window.URL.createObjectURL(blob); var a = document.createElement("a"); a.setAttribute("href", url) a.download = '庫存帳查詢.xlsx'; document.body.appendChild(a); a.click() document.body.removeChild(a); }; //xhr.onreadystatechange = function () { // // 這步為判斷伺服器是否正確響應 // if (xhr.readyState == 4 && xhr.status == 200) { // var blob = new Blob([xhr.response], { type: 'application/vnd.ms-excel,charset=utf-8' }); // let url = window.URL.createObjectURL(blob); // var a = document.createElement("a"); // a.setAttribute("href", url) // a.download = '庫存帳查詢.xlsx'; // document.body.appendChild(a); // a.click() // document.body.removeChild(a); // } //}; xhr.send(引數);
模擬表單提交
function download (options) { var defaults = { method: "GET", url: "", param: [] }; var options = $.extend(defaults, options); if (options.url && options.param) { var$form = $('<form action="' + options.url + '" method="' + (options.method || 'post') + '"></form>'); for (var key in options.param) { var $input = $('<input type="hidden" data-back="backjb" />').attr('name', key).val(options.param[key]); $form.append($input); } $form.appendTo('body').submit().remove(); }; }