Fetch的GET、POST简单HTTP请求封装
在现代 Web 开发中,Fetch API 已经可以完全替代 Ajax,是处理 HTTP 请求的利器,且支持异步操作和 Promise 链式调用。 本文将详细介绍如何使用 Fetch API 封装 GET 和 POST 请求。通过封装,代码可复用性更高,逻辑更清晰,同时还能简化错误处理和请求配置,大大提升开发效率和代码质量。
GET 请求封装
const $GET = async (url: string, headers: Record<string, string> = {}): Promise<any> => {
try {
const res = await fetch(url, { method: "GET", headers: headers });
if (!res.ok) throw new Error(`HTTP error! Status: ${res.status}`);
return res.json();
} catch (error) {
console.error("GET request failed:", error);
}
};
POST 请求封装
const $POST = async (url: string, data: Record<string, any>, headers: Record<string, string> = {}): Promise<any> => {
try {
const res = await fetch(url, { method: "POST", headers: { ...headers }, body: JSON.stringify(data) });
if (!res.ok) throw new Error(`HTTP error! Status: ${res.status}`);
return res.json(); // 解析 JSON 数据
} catch (error) {
console.error("POST request failed:", error);
}
};