项目支持新功能,其中要求点击下载报告,post请求,请求体中携带报告内容对象,然后返回数据是二进制数据流,并把它下载下来~
1、文件下载,首先想到的肯定是 a标签的 href,并属性 download 设置,如果有值则为下载的文件名。但是查了许久,貌似没找到如何使 a标签转换 method 为 post 的方法。
2、form 表单提交,虽然有 post 方法,但是要传输的数据是个非常大的对象,里面又有对象数组,form 传参只能是 key value 形式单个字符串传输,也是麻烦的要命。
3、$http 请求回二进制数据流,直接操作数据流保存成可操作的 blod 对象,再将其转换成 DOMString 然后使用 a标签的 href 进行下载;貌似看着是最简单也最通用的方式,缺有一个致命的缺点,兼容性为 ie10 +,也就是说 ie9 不支持!
该问题有待后续研究。。。
时间: 2024-10-20 03:47:54