前端使用后台返回的二进制流。请求方法需要添加resposeType:'blob'eg:this.axios.get('url',{header:'',resposeType:'blob'})返回的res应该是一个Blob对象letblob=newBlob([res],{type:''})letimgUrl=window.URL.createObjectURL(blob)//使用后需要销毁window.URL.revokeObjectURL()注意!!!重点是如果res返回流的乱码,类型是String,后台界面正常。如果你用的是Chrome,查看Network下的Initiator,看发起的js对象是不是xhr.js。如果是mock.js,说明在项目中使用了mockjs,原因是mockjs会拦截请求,初始化respnseType:'',需要注释掉项目中require或import引用的地方,eg:importMockfrom'mockjs'beforefiledownload遇到这个问题,网上资料很少,后来发现可能是受mockjs的影响(人家用require),后来也没找到有用的资料,所以我就跟我们项目的架构师说这个方法前后都有问题,所以我用了另一种方法。工作流程图需要这个方法。流程图是可以查看的,但是每次刷新浏览器后才能看到。原因是初始化数据返回的res是字符串类型。二进制流是乱码。经过一系列的低级探索,在始作俑者身上找到了不同之处。mock.js和xhr.js,表示项目中必须使用mockjs。全文搜索'mockjs',原来好几个地方都用了importMockfrom'mockjs'(不知道小伙伴什么时候偷偷加的),评论后一切正常
