let xhr = new XMLHttpRequest();
xhr.timeout = 0;
var token: any = localStorage.getItem('token_mare_basic') == null ? "" : localStorage.getItem('token_mare_basic');
xhr.open('GET', `${omsTankInfoServer}/oms/tas/exportTas?tankAreaId=` + record.id, true);
xhr.responseType = 'blob';
xhr.setRequestHeader("token", token)
xhr.send();
// 请求成功回调函数
xhr.onload = function (e) {
console.log(e, xhr)
if (this.status == 200) {
var blob = this.response;
var filename = record?.tankAreaName + "罐区TAS组态.zip";
var a = document.createElement('a');
var url = URL.createObjectURL(blob);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(url);
}
else {
message.error("接口请求失败!")
}
};
// 请求结束
xhr.onloadend = e => {
console.log('request loadend');
};
// 请求出错
xhr.onerror = e => {
console.log('request error');
};
// 请求超时
xhr.ontimeout = e => {
console.log('request timeout');
};
也可以封装成工具:
/**
*
* @param url xmlhttprequest请求封装
* @param responsrType
*/
export const XMLHttpRequestUtil = (url: string, responsrType: any) => {
let xhr = new XMLHttpRequest();
xhr.timeout = 0;
var token: any = localStorage.getItem('token_mare_basic') == null ? "" : localStorage.getItem('token_mare_basic');
xhr.open('GET', url, true);
xhr.responseType = responsrType;
xhr.setRequestHeader("token", token)
xhr.send();
return xhr;
}
/**
*
* @param fileName 下载链接对应的文件
* @param blob
*/
export const downloadHref = (fileName: string, blob: any) => {
var a = document.createElement('a');
var url = URL.createObjectURL(blob);
a.href = url;
a.download = fileName;
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(url);
}