在 Axios 中,当状态码为 204 时,默认情况下不会解析响应数据。如果你想要 Axios 在状态码为 204 时解析响应数据,可以通过使用 transformResponse 选项来实现。
以下是一个示例代码,展示了如何在 Axios 中处理状态码为 204 的响应:
axios.get('https://example.com/api/endpoint', {
transformResponse: [(data, headers) => {
if (headers.status === 204) {
// 当状态码为 204 时,手动解析响应数据
return '';
} else {
// 其他状态码,使用默认的解析方式
return JSON.parse(data);
}
}]
})
.then(response => {
// 处理响应数据
console.log(response.data);
})
.catch(error => {
// 处理错误
console.error(error);
});
在上述代码中,我们通过 transformResponse 选项传递了一个函数数组。这个函数数组会在 Axios 接收到响应数据之前被调用。在函数中,我们首先检查响应头的状态码是否为 204,如果是则手动返回一个空字符串(或者根据需求返回其他值)。对于其他状态码,我们使用默认的解析方式,通过 JSON.parse 解析响应数据。
需要注意的是,transformResponse 选项接收一个函数数组,可以传递多个函数来处理响应数据。如果你需要在处理响应数据之前执行多个转换操作,可以继续添加其他函数到数组中。
希望上述解决方法对你有所帮助!