今天在使用POST下载并使用file-saver中的saveAs保存文件时意外地发现保存下来的文件直接报错说文件损坏,如下图Excel为例:
网上查阅大量方法,经过切换后端服务器,改为上线项目下载等过程后,确认是本地前端存在代码问题。
但本地前端关于下载的封装函数并未修改过,和线上的代码一模一样,在网上一阵冲浪,最终认为是依赖之间冲突导致,检查package内依赖,发现最近只安装过mockJS,经过检查,发现确实mockJS能够导致下载的文件出现问题,mockJS会重新封装XHR对象,让原本对象中的responseType属性失效,导致blob数据出现问题。
原始的request
被mock处理过的request
目前的处理方法是不使用mockJS,除了mockjs之外,zonejs、oboejs、fetchjs也有自己的的XMLHttpRequest库,请慎用。
标签:文件,依赖,saver,file,mockJS,下载 From: https://www.cnblogs.com/sakura-hfhj/p/16824496.html