Open seekwe opened 7 years ago
…… 这明显跟 Mock 无关啊,自己看 axios 的配置,而且 axios 默认的 responseType 也是 json
@JounQin 那就奇怪了,因为responseType也手动设置为json,而且访问真实接口是json格式没错,就mock拦截之后返回是是纯字符串要手动去转换成json,我再找找问题吧
transformResponse 在axios中设置了这个属性的过滤方法之后,返回的参数就变成了string,去掉的话就变成json
@seekwe @BillionChen 同样遇到了这个问题,因为之前没有接触过 mockjs,只使用 axios。
我在 transformResponse 中设置了过滤器,responseType 设置成了 json. 之前一切都正常。
但是,某同事某个提交之后,transformResponse 中的过滤器拿到的 resp 一直都是string,不是json。 然后我就开始了漫长的艰苦卓绝的排bug历程。因为他们用mockjs 是想用来 mock数据的,我怎么也没有想过引入这个库,竟然能影响的业务代码。:(
@JounQin 同学说明显和mock无关,估计应该是理解成了 楼主 没有 设置 responseType。其实不是这样。
我的观点是,这肯定是mockjs的bug, 而且我觉得一个库的引入,不应该是影响 全局的接口 ,我注意到源码中备份了XMLHttpRequest,我在想是不是重新实现的和原生的有偏差?(理解偏差的话,请见谅哈)
请 @nuysoft 辟谣。
这个就是mockjs的bug原生的responseType对它根本不起作用,这玩意就兼容了jQuery。我不知道这么简单的一个功能玩这么多花样干嘛,有机会自己封装一个吧
小伙子火气有点大,来根华子压压惊。 mockjs 造数据啥的还是很强的。
这个仓库已经不维护了,我fork了一份已经解决,可以使用我fork的仓库 tony-mockjs
npm i tony-mockjs
我的代码里里面使用了threejs,具体的responseType值会是 text|ArrayBuffer|json,目前工作良好
rt