随笔记录40 ajax下载文件

            var url = '******';//请求后端的矮口地址
            var xhr = new XMLHttpRequest();
            xhr.open('GET', url, true); // 也可以使用POST方式, 根据接口
            // xhr.setRequestHeader("token", sessionStorage.getItem("id"));//需要在请求头里给后端传的用户信息
            xhr.responseType = "blob"; // 返回类型blob
            //定义请求完成的处理函教,请求前也可以增加加裁框/禁用下裁按钮逻辑
            xhr.onload = function () {
                //请求完成
                if (this.status === 200){
                    //返回200
                    var blob = this.response;
                    var reader = new FileReader() ;
                    reader.readAsDataURL(blob); // 转焕为ase64,可以直接放入a表href
                    reader.onload = function (e) {
                        layer.close(loadindex);
                        //转换完成,创建一个日标签用于下载
                        var a = document.createElement('a');
                        a.download = '我是文件名.zip';
                        a.href = e.target.result;
                        $("body").append(a); // 修复firefox 中无法触发click
                        a.click();
                        $(a).remove();
                    }
                }
            }
            //发送ajax 请求
            xhr.send()

参考自:https://blog.csdn.net/m0_65376942/article/details/124321161

你可能感兴趣的:(随笔记录40 ajax下载文件)