在使用Axios()与Fetch()时获得2种不同的响应,如何使其匹配?

时间:2018-11-26 21:51:00

标签: javascript fetch axios

出于一致性考虑,我想用Axios代替fetch调用,因为它在代码库的其他地方都已使用。问题是,在更新代码以使用Axios时,我无法像使用获取时一样获得相同的响应。

fetch(this.uri, {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${myToken}`
  }
})
.then(response => {
  console.log('1 -------------->', response);
});

VS

axios.get(this.uri, {
  headers: {
    Accept: 'application/json',
    authorization: `Bearer ${myToken}`
  }
})
.then(response => {
  console.log('2 -------------->', response);
});

获取响应

1 --------------> Response {type: "cors", url: "http://example.com/files/123.pdf", redirected: true, status: 200, ok: true, …}body: (...)bodyUsed: falseheaders: Headers {}ok: trueredirected: truestatus: 200statusText: " etc...

Axios响应

2 --------------> {data: "%PDF-1.6
%����
↵22 0 obj
<</Linearized 1/L 35259/O… �
etc...

fetch响应是我想要的响应,基本上我是从s3存储桶加载pdf文件,fetch会给我返回一个响应对象,该对象在其中一个属性中包含文件的URL,而Axios会给我返回pdf文件内容的八位字节流。

如何获取Axios响应以匹配提取?


编辑

我应该提到我确实获得了文件url,但是它嵌套在Axios调用中。在获取时,我在Axios中使用response.url来获取它。我只希望即使在Axios上也可以使用response.request.responseURL

0 个答案:

没有答案