tianxiaozi
tianxiaozi
> 如果未匹配到数据模板,Mockjs会初始化原生XHR对象,这个过程导致设置axios里设置的responseType没有起作用。 所以,如果在使用类似`axios({ responseType: "arraybuffer" })`的时候,这个设置并没有起作用的原因。 > > 1. 在axios的xhr开始open时([axios::xhr.js](https://github.com/axios/axios/blob/7821ed20892f478ca6aea929559bd02ffcc8b063/lib/adapters/xhr.js)),mockjs对其xhr对象进行了初始化,并将原生xhr的设置复制给了mockjs xhr对象,这个过程没有设计到responseType的设置([mockjs::mock.js](https://github.com/nuysoft/Mock/blob/00ce04b92eb464e664a4438430903f2de96efb47/src/mock/xhr/xhr.js)) > 2. axios的xhr对象在执行send之前,对responseType进行了设置(这个过程没有对mockjs的xhr对象设置同样的responseType) > 3. 在执行send时,mockjs开始判断,如果没有匹配到数据模板,则启用原生的xhr对象执行,这个时候mockjs将它的xhr设置复制给原生的xhr对象。 > > 这个过程中第2步的执行是没有将responseType值继承的。 > > #426 这个issue应该也不能解决这个问题,可能axios的config.responseType能在open前复值给request对象就可以了。 能不能给个具体的解决方法?