js 下载后端返回的文件、图片 (二),兼容ie下载的方式

前端采用的是XMLHttpRequest下载,之前写过一篇关于XMLHttpRequest下载的文章,但是后面在测试兼容性的时候发现之前的写法不兼容ie9。

// 下载二维码

function downloadPic() {

   // 对文件重命名

    var excelName = '文件名'

    var xmlHttp = new XMLHttpRequest();

    var url = '请求的链接';

    xmlHttp.open('get', url, true);

    xmlHttp.responseType = "blob";

    xmlHttp.onload = function () {

        if (this.status == 200) {

            var blob = this.response;

            var href = window.URL.createObjectURL(blob); //创建下载的链接

            //判断是否是IE浏览器,是的话返回true

            if (window.navigator.msSaveBlob) {

                try {

                    window.navigator.msSaveBlob(blob, excelName + '.png');

                } catch (e) {

                    console.log(e);

                }

            } else {

                // 谷歌浏览器 创建a标签 添加download属性下载

                var downloadElement = document.createElement('a');

                downloadElement.href = href;

                downloadElement.target = '_blank';

                downloadElement.download = excelName + '.png'; //下载二维码图片

                document.body.appendChild(downloadElement);

                downloadElement.click(); //点击下载

                document.body.removeChild(downloadElement); //下载完成移除元素

                window.URL.revokeObjectURL(href); //释放掉blob对象

            }

        }

    }

    xmlHttp.send();

}

后端返回的是File文件:


你可能感兴趣的:(js 下载后端返回的文件、图片 (二),兼容ie下载的方式)