js - 前台下载后台返回的文件

        const url = 'xxx/xxx/xxx';
        const xhr = new XMLHttpRequest();
        xhr.open('POST', url, true);
        xhr.setRequestHeader('Content-Type', 'application/json');
        // 返回类型blob
        xhr.responseType = 'blob';
        xhr.onload = function () {
            if (this.status === 200) {
                const blob = this.response;
                readBlob2File(blob, 'filename');
            } else {
                errorCallback();
            }
        };
        // 发送ajax请求
        xhr.send(JSON.stringify(param));

   function readBlob2File(blob, fileName) {
        const reader = new FileReader();
        reader.readAsDataURL(blob);
        reader.onload = e => {
            const a = document.createElement('a');
            a.download = decodeURIComponent(fileName);
            a.href = e.target.result;
            document.body.appendChild(a);
            a.click();
            document.body.removeChild(a);
        };
    },
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容