/****
* 发送请求参数
* @param _url 请求地址
* @param _headers 请求头
* @param _method 请求类型(get、post【、put、delete...】)
* @param _data 请求体参数
* @param _params url参数
*/
axios.request({
url: _url,
headers: _headers,
method: _method,
data: _data,
params: _params,
responseType: 'blob'
}).then(function (response) {
var data = response.data;
var xhr = response.request;
var contentType = xhr.getResponseHeader("Content-Type");
var type = contentType.split(';');
if (type != null && type.length > 0 && type[0].toLowerCase() == "application/json") {
if (data && data.toString() == "[object Blob]") {
var downloadurl = window.URL.createObjectURL(data);
var fileName = '下载文件.txt';
var contentDisposition = xhr.getResponseHeader("Content-Disposition");
if (contentDisposition) {
var respcds = contentDisposition.split(";")
for (var i = 0; i < respcds.length; i++) {
var header = respcds[i];
if (header != null && header != "") {
var headerValu = header.split("=");
if (headerValu != null && headerValu.length > 0) {
var _hdvalue = headerValu[0];
if (_hdvalue != null && _hdvalue != undefined && _hdvalue != "") {
if (_hdvalue.toLowerCase() == "filename") {
//对filename进行decode处理,防止出现中文的情况
fileName = decodeURIComponent(headerValu[1]);
}
}
}
}
}
}
const aDom = document.createElement('a');
aDom.setAttribute('style', 'display: none');
aDom.href = downloadurl;
aDom.setAttribute('download', fileName);
(document.body || document.documentElement).appendChild(aDom);
aDom.click();// 设置点击事件
aDom.remove(); // 移除a标签
} else {
console.log('意外数据类型');
}
} else {
console.log('json 数据不作处理');
}
}).catch( function(error) {
console.log(error)
})
axios下载文件
最新推荐文章于 2024-05-09 14:46:33 发布