下载blob文件及将错误的blob信息转换成json对象

下载blob文件及将错误的blob信息转换成json对象

调用导出接口下载后端的excel文件,当错误时后端返回json信息,因请求头设置了

responseType: 'blob',

所以,json格式返回到前端时变成了blob对象,转回去,显示

if(res.data.type == 'application/json') {
	//错误提示
	const reader = new FileReader();
	reader.readAsText(res.data, 'utf-8');
	reader.onload = function (e) {
		const readerres = reader.result;
		const parseObj = JSON.parse(readerres);
		Message({
			message: parseObj.message,
			type: 'error'
		})
	}
} else {
	// 正常下载
	const xhr=res.request;
	const headers = xhr.getAllResponseHeaders();
	const contentDisposition = xhr.getResponseHeader("Content-Disposition");
	const url = URL.createObjectURL(res.data);
	const fileName = decodeURI( contentDisposition.split("filename=")[1].split(";filename*=")[0])
	const link = document.createElement('a');
	link.href = url;
	link.download = fileName;
	link.click();
	link.remove();
}

完事

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值