javascript - Axios 是在客户端处理响应体到 responseType 的转换,还是由服务器处理?
问题描述
我一直在阅读有关HTTP
标头的内容并阅读了有关的内容Accept
,从我阅读的内容来看,它是后端服务器用来了解请求客户端期望什么样的响应的标头。我很好奇它与responseType
Axios 请求的选项有什么样的关系,或者它有什么关系。
// `responseType` indicates the type of data that the server will respond with
// options are: 'arraybuffer', 'document', 'json', 'text', 'stream'
假设我向GET
某个 API 发送了一个请求,我知道该 API 会以JSON
正文进行响应,然后我将其设置responseType
为arraybuffer
,Axios 是否处理该转换?
axios
.get("https://jsonplaceholder.typicode.com/todos/1", {
headers: { Accept: "application/json" },
responseType: "arraybuffer",
})
.then((res) => {
console.log(res.data);
})
.catch((err) => {
console.log(err);
});
解决方案
从代码来看,它responseType
只是决定了响应体如何被解析(或不被解析),它与任何标题无关。
实际响应类型由Content-Type
响应标头表示。服务器应评估请求标头,以根据客户端的偏好从资源的多种内容类型中进行选择(如果可用!)Accept
。有关详细信息,请参阅内容协商。
推荐阅读
- python - 计算熊猫数据框选定列的加权和的推荐方法是什么?
- vuex - Buefy、Vuex、Toast:找不到声明文件
- android - 如何只将用户数据写入firebase数据库一次?
- c - C 不确定要正确释放什么
- java - JavaFX - TableView 未填充数据
- python - 迭代现有列表值,同时使用列表理解创建它
- reactjs - 在 React Native 中使用 Mobx 是否需要任何装饰器?
- hp-uft - UFT 在 IE 中找不到对象
- c++ - g++ 和 clang++ 通过引用捕获 `std::integral_constant` 的不同行为
- python - 输出与预期不同