mock.js的一个坑

今天项目中合入了同事的代码,结果发现登录页的二维码图片加载失败了,奇怪的是登录页的代码我们都没有改动过,图片是将后端返回的的arraybuffer转为base64格式展示的。

调试了一两个小时还是无法解决图片加载失败的问题。

我将本地调试接口返回的数据与线上的接口返回做了对比。发现其中的data不太一样,本地是这样的

本地结果

而线上是这样的

线上结果

很明显data不一样,本地的data是乱码。

我百度了一番ajax中设置responseType为"arraybuffer"结果为乱码,终于找到了原因。印象中两年前也遇到过这个问题。

项目中引入了mock.js,而mock.js初始化了responseType,mockjs会影响到会影响原生的ajax请求,使得服务器返回的arraybuffer类型变成乱码。

参考链接:https://blog.csdn.net/qq_43020029/article/details/112294436

你可能感兴趣的:(mock.js的一个坑)