$.ajax()请求接口导出文件

前言:

        项目需求:页面上新增两个导出数据按钮,通过传参导出不同的 Excel 文件。

问题:

        使用$.ajax请求接口,设置了responseType:“blob” ,可以进行文件下载,但是下载的文件不能打开。

 通过以往的经验,感觉是responseType设置了没有生效,经过检索,发现 xhrFields 属性。

文心一言给出关于 xhrFields 的作用:

        xhrFields 是 jQuery AJAX 请求配置中的一个选项,允许设置原生 XMLHttpRequest 对象的属性。通过 xhrFields 可以直接控制 XMLHttpRequest 对象的行为。

正文:

function exportSjflFn(){
    $.ajax({
        url:"/exportAPIS",
        type:'get',
        data:{
            showName:sjfl,
            startTime:startTime,
            endTime:endTime
        },
        xhrFields: {
            responseType: 'blob'
        },
        success:function(data,status,xhr){
            //获取响应头
            let filename = decodeURIComponent(xhr.getResponseHeader("Content-Disposition").split(";")[1].split("=")[1])
            downLoadFile(data,filename)
        }
    })
}

补充:

        xhr.getResponseHeader()  // 获取特定响应头

        xhr.getAllResponseHeaders() //获取所有响应头 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值