记使用umi-request,在组件中调用request.then((resp) => {})中拿到的resp不是完整的response的解决方法

1,487 阅读1分钟

本人使用的是umi-request

因为有一个需求是要用到response.blob()方法,但是发现在调用request请求后的then((resp) => {})返回中拿到的resp不是完整的response对象,这是因为umi-request在内部默认做了返回值简化,

所以在配置中添加属性parseResponse: false,来关闭简化的功能,即可获得完整的response对象:

const request = extend({
  credentials: 'same-origin',
  parseResponse: false,
});

这时候在响应拦截器中通过response.clone().json()拿到接口返回的数据:

request.interceptors.response.use((response) => {
  let data = response.clone().json();
});