jquery ajax 无窗口下载文件

1、jquery 版本

要实现该功能需要使用jquery 3.x版本,这里使用了3.7.0

<script src="/jquery-3.7.0.min.js"></script>

2、实现

    $("#btn-export").on('click',function (){
        var form_data = new FormData();
        form_data.append("account", $('input[name="account"]').val());

        $.ajax({
            type: "post",
            url: "/account_export",
            data:form_data,
            /* 重点一、processData 和 contentType 都为false*/
            processData:false,
            contentType:false,
            timeout:0,
            xhr:function (){
                /* 重点二、数据类型 */
                var xhr = new XMLHttpRequest();
                xhr.responseType = 'blob';
                return xhr;
            },
            success: function (file,a,b) {
                /* 重点三、文件名 */
                let filename = b.getResponseHeader("Content-Disposition");
                filename = filename.replace("attachment;filename=","");
                filename = decodeURIComponent(filename);

                /* 重点四、模拟点击a标签下载*/
                let obj = document.createElement('a');
                let url = window.URL.createObjectURL(file);
                obj.href = url;
                obj.download = filename;
                obj.click();
                window.URL.revokeObjectURL(url);
            },error:function (a,b,c){
                console.log(b);
            }
        });
    });