在vue项目中 一般是前端调用接口 得到后端返回的二进制流文件 然后转换格式 变成excel表格来进行导出的
最近我遇到了一个问题 就是导出后会出现乱码
当时就排查了很多的问题 在网上说发请求的时候要加上response:'blob'
但是我也加上了 还是乱码 之后就和后端一起检查了很久 都发现没什么问题 但是就是一直乱码 很疑惑
最后才找到了原因 就是因为项目中引用了mock.js导致的 他会把你加上的responseType='blob'
变成空
具体问题一步一步说
首先在node_modules里找到mockjs-x
里面的responseType变会置空
这样的话你加了responseType也没效果 会被置空
所以找到这句话 添加上面注释的这一句话即可
但是我们是不可以直接修改node_modules里的源码的 不然发到生产环境 还是没有变化
找了好久我发现了 项目中引用了mock的地方 我不能注释掉mock的引用 因为别的地方都使用了
所以我修改了一点代码 比如在调用这个接口的时候 改变responseType 就好了