在Firefox上使用Ajax从服务器下载文件

时间:2018-11-29 23:22:47

标签: javascript google-chrome firefox

如何从URL下载文件。

以下代码仅适用于chrome:

$.ajax({
                    url: '/xls',
                    data: {_csrf: this.csrf, hist:historicData },
                    method: 'POST',
                    // beforeSend: function(xhr){
                    //     xhr.setRequestHeader('historic', historicData);
                    // },
                    xhrFields: {
                        responseType: 'blob'
                    },                    
                    success: function (data) {
                        var a = document.createElement('a');
                        a.style = "display: none";  
                        var blob = new Blob(data, {type: "application/octet-stream"});
                        var url = window.URL.createObjectURL(blob);
                        a.href = url;
                        a.download = filename;
                        document.body.appendChild(a);
                        a.click();
                        setTimeout(function(){
                            document.body.removeChild(a);
                            window.URL.revokeObjectURL(url);  
                        }, 100);  

                    },
                    error: function (xhr, ajaxOptions, thrownError) {
                       alert(xhr.status);
                       alert(thrownError);
                   }
                });

在Firefox上没有任何阻碍。

Firefox版本:63.0.3(64位)

Chrome版本:70.0.3538.110

网络:

  

请求URL:http://localhost:3000/xls请求方法:POST远程   地址:[:: 1]:3000状态码:200 ok

     

预览:AAB4bC93b3JrYm9vay54bWxQSwECFAAKAAAAAAD .......

     

响应头(519 B)缓存控制无缓存,私有,无存储,   m…= 0,后检查= 0,预检查= 0连接保持有效   内容配置附件; filename = xingamento内容类型
  application / vnd.ms-excel日期,星期四,2018年11月29日23:38:17 GMT   严格运输安全max-age = 15552000; includeSubDomains   传输编码分块的X-Content-Type-Options nosniff   X-DNS-Prefetch-控制关闭X-Download-Options noopen   X-Frame-Options SAMEORIGIN X-XSS-Protection 1;模式=阻止

0 个答案:

没有答案