--------方法的使用----------
main.exportExcel({
method: "post",
url: "/v1/export",
data: {}
})
--------方法的定义----------
/**
* 导出excel
* @param options(method/url/data)
*/
exportExcel: function (options) {
var config = $.extend(true, {}, options);
var token = "";
if (cookieObj.get("user")) {
token = "Bearer " + JSON.parse(cookieObj.get("user")).token;
} else {
$.showAlert("登录失效!", "error");
cookieObj.set("user", "");
setTimeout(function() {
top.window.location.href = "/login.html";
}, 2000);
}
var xhr = new XMLHttpRequest();
xhr.open(config.method, config.url);
xhr.setRequestHeader("Authorization",token);
xhr.setRequestHeader("Content-Type", 'application/json;charset=UTF-8');
xhr.responseType = 'blob';
xhr.onload = function (e) {
if (this.status == 200) {
var blob = this.response;
var filename = this.getAllResponseHeaders("content-disposition").split("filename=")[1].split(".xls")[0];//根据自定义响应头获取文件名称
filename = decodeURIComponent(filename);
filename = filename + ".xls"
console.log(this.response)
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob, filename);
} else {
var a = document.createElement('a');
var url = (window.URL) ? window.URL.createObjectURL(blob) : window.webkitURL.createObjectURL(blob);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(url);
}
}
};
xhr.send(JSON.stringify(config.data));
}