javascript 下载 application/octet-stream 文件

复制代码
function downloadFile(id) {
    var xhr = new XMLHttpRequest();
    xhr.open('POST', 'https://localhost/api/app/isp-detection/' + id + '/download');
    xhr.responseType = 'blob';
    xhr.setRequestHeader('Content-Type', 'application/octet-stream');
    xhr.onload = function () {
        if (xhr.status === 200) {
            var a = document.createElement('a');
            var url = window.URL.createObjectURL(xhr.response);
            console.log(url);
            a.href = url;
            a.download = id + '.xlsx';
            document.body.appendChild(a);
            a.click();
            window.URL.revokeObjectURL(url);
        }
    };
    xhr.send();
}
复制代码

 或

复制代码
function downloadFile(id) {
    var xhr = new XMLHttpRequest();
    xhr.open('POST', 'https://isp-system.vtmarkets.net/api/app/isp-detection/' + id + '/download');
    xhr.responseType = 'blob';
    xhr.onload = function () {
        if (xhr.status === 200) {
            var a = document.createElement('a');
            var url = window.URL.createObjectURL(xhr.response);
            var defaultFileName = xhr.getResponseHeader("Content-Disposition").split(";")[1].split("filename=")[1];
            var filename = decodeURI(defaultFileName);
            a.href = url;
            a.download = filename;
            document.body.appendChild(a);
            a.click();
            window.URL.revokeObjectURL(url);
        }
    };
    xhr.send();
}
复制代码

 

posted @   邪不压正!  阅读(437)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示