出于一致性考虑,我想用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
。