js下载csv文件,后端返回blob值,解决中文乱码和ie兼容

 注意:1. 确认后端返回的blob中文未乱码(后端返回的中文乱码需要后端解决)

            2. 后端返回blob中文未乱码,前端下载的csv文件中文乱码,解决方案如下:取消 request.responseType = 'blob'; 配置 ,然后转blob时添加  "\uFEFF" + this.response

var request = new XMLHttpRequest();
var url = 'http://xxx/loadCsv'    //接口地址
request.open('post', url, true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
// request.responseType = 'blob';    //csv文件不用配置blob
request.onload = function (e) {
    if (this.status === 200) {
        const contentTypeHeader = request.getResponseHeader("Content-Type");
        //"\uFEFF"解决中文乱码问题
        const blob = new Blob(["\uFEFF" + this.response], { type: contentTypeHeader });
        //兼容ie
        if (window.navigator.msSaveOrOpenBlob) {
             window.navigator.msSaveBlob(blob, "API测试数据.csv");
        } else {
             var downloadLink = window.document.createElement('a');
             downloadLink.href = window.URL.createObjectURL(blob);
             downloadLink.download = "API测试数据.csv";
             document.body.appendChild(downloadLink);
             downloadLink.click();
             document.body.removeChild(downloadLink);
        }
    }
};
request.send()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值