1、vue+axios下載文件流
let that=this;
that.$ajax({
url: ‘地址’,
method: ‘get’,
responseType: “blob”, //必須要填寫
headers:{‘Content-Type’:‘application/x-www-form-urlencoded’, ‘x-locale’:‘zh-CN’}
}).then(function (res) {
let blob = new Blob([res.data], {type: “application/vnd.ms-excel”});
if (window.navigator.msSaveBlob){
window.navigator.msSaveBlob(blob);
}else {
let objectUrl = window.URL.createObjectURL(blob);
window.location.href = objectUrl;
}
}).catch(function (err) {
console.log(err)
})
注意:如果在是封裝的axios不生效。只能寫在axios({})裏面。
2、通過form的方式下載文件流。不過不支持headers裏面傳遞用戶信息。只能通過下面的方式傳遞參數數據。
var url = “”, data={};
that.downloadFile( {url:url, data:data});
downloadFile(options){
var config = $.extend(true, { method: ‘get’ }, options);
var $iframe = $(’’);
var $form = $(’’);
$form.attr(‘action’, config.url);
for (var key in config.data) {
$form.append(’’);
}
form);
iframe);
$form[0].submit();
$iframe.remove();
},