如何将基于isomorphic-fetch的请求代码转换为axios实现
axios版本的注册接口实现代码
import axios from 'axios'; import { API } from '../config'; export const signup = (user) => { return axios.post(`${API}/signup`, user, { headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, // 对齐原fetch的状态码处理逻辑:所有响应都走then分支 validateStatus: () => true }) .then(res => res.data) .catch(err => err); };
关键调整说明
- 移除了手动
JSON.stringify(user)的操作:axios会自动将传入的请求体对象序列化为JSON,同时默认设置Content-Type: application/json,显式保留头配置是为了完全对齐原代码的行为。 - 移除了手动调用
res.json()的逻辑:axios默认会自动解析返回的JSON格式响应,直接通过响应对象的data字段即可获取解析后的结果。 - 新增
validateStatus: () => true配置:原isomorphic-fetch仅在网络请求失败时才会进入catch分支,服务器返回任何状态码(包括4xx/5xx)都会走then分支;而axios默认仅将2xx状态码判定为成功,非2xx状态码会直接抛出错误进入catch,该配置用于对齐原逻辑。 - 错误处理逻辑完全保留了原代码的写法。
内容的提问来源于stack exchange,提问作者Alamin
相关产品推荐
相关产品推荐

