我如何强制浏览器(ie7)从请求中加载文件?

问题描述 投票:0回答:1

我遇到了问题,即ie7不支持Blob数据类型。现在,我无法强制浏览器(ie7)加载我从服务器获取请求的文件。现代浏览器(chrome,firefox)使用此js代码可以很好地做到这一点]

        var xhr = new XMLHttpRequest();
        xhr.open('GET', COEFF_CONTROL_GET_CSV_FILE_URL + "&" + "DWL_PERIOD=2019&DWL_MR=37", true);
        xhr.onreadystatechange = function(){
            if(xhr.readyState == 4 && xhr.status == 200){
               //Code below implements file load
                var contentDisposition = xhr.getResponseHeader('content-disposition');
                var filename = contentDisposition.split("filename=")[1].split(";")[0];

                var blob = new Blob([xhr.response], {type: 'text/csv'});
                var link = document.createElement('a');
                link.href = window.URL.createObjectURL(blob);
                link.download = filename;

                document.body.appendChild(link);
                link.click();                    
            }
        }

我现在随服务器的请求传递的标头

header("Content-Type", "text/csv;charset=utf-8");
header("Content-Disposition", "attachment;filename=&mvFileName");

我已经尝试过(但没有帮助)

将感谢您提供所有可能的帮助!

javascript internet-explorer sas internet-explorer-7
1个回答
0
投票
由于IE 7中不支持Blob,因此您的代码将不适用于IE 7版本。

我建议您使用最新的Microsoft浏览器。如果您无法使用最新的Microsoft浏览器,则至少应转到IE 11版本。 IE 10版本支持Blob。

对于IE 11浏览器,建议您使用

Navigator.msSaveBlob()方法进行测试。

Navigator.msSaveBlob()方法将File或Blob保存到磁盘。此方法的行为与Navigator.msSaveOrOpenBlob()相同,但会禁用文件打开选项。

示例:

var blob = new Blob(["Sample String\r\n,For Checking, msSaveBlob"],{ type:'text/csv;charset=utf-8;' }); if(navigator.msSaveBlob){ navigator.msSaveBlob(blob,"sample.csv"); }

参考:

    msSaveBlob
  1. msSaveBlob method

© www.soinside.com 2019 - 2024. All rights reserved.