今天看啥  ›  专栏  ›  doudou520

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

doudou520  · 掘金  ·  · 2021-08-03 16:57
阅读 29

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

本人使用的是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();
});
复制代码



原文地址:访问原文地址
快照地址: 访问文章快照