使用post请求下载文件

匿名 (未验证) 提交于 2019-12-02 23:36:01
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_19650093/article/details/90644986


 downloadFile(){           var xhr = new XMLHttpRequest();     // xhr.open('GET', url, true);        // 使用GET方式比较简单,参数直接附在URL上     xhr.open('post', url, true); 		//POST的格式相对比较灵活,参数可以有比较多的形式,例如JSON,表单FORM等        xhr.responseType = "blob";    // 返回类型blob        xhr.setRequestHeader("Content-Type","application/json");//提交的数据为json格式         // 定义请求完成的处理函数    xhr.onload = function () {         // 请求完成         if (this.status === 200) {             // 返回200             var blob = this.response;             var reader = new FileReader();             reader.readAsDataURL(blob);    // 转换为base64,可以直接放入a表情href             reader.onload = function (e) {                 // 转换完成,创建一个a标签用于下载                 var a = document.createElement('a');                 a.download = 'data.csv';                 a.href = e.target.result;                 $("body").append(a);    // 修复firefox中无法触发click                 a.click();                 $(a).remove();             }         }     };     // 发送ajax请求,案例中我们使用POST的请求格式,参数类型为JSON    var param = {};    param.filename = "test";    xhr.send(param); }

上面模拟了一个post的请求,类似于ajax中的,区别在于ajax对于文件流的接收没有一个很方便的的方式(反正我找了很久没有找到)

 $.ajax({     url: url,     type: 'post',     dataType: 'json',     data: JSON.stringify(param),     success: function(){               },     error: function(){                }  }) 

文章参考了以下文章内容:

https://blog.csdn.net/harryhare/article/details/80778066

https://blog.csdn.net/swl979623074/article/details/77855629/

文章来源: https://blog.csdn.net/sinat_19650093/article/details/90644986
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!