学习笔记jira项目24用fetch抽象http请求
const apiUrl = process.env.REACT_APP_API_URL; interface Config extends RequestInit { token?: string; data?: object; } export const http = async ( endpoint: string, { data, token, headers, ...customConfig }: Config = {} ) => { const config = { method: "GET", headers: { Authorization: token ? `Bearer ${token}` : "", "Content-Type": data ? "application/json" : "", }, ...customConfig, }; if (config.method.toUpperCase() === "GET") { endpoint += `?${qs.stringify(data)}`; } else { config.body = JSON.stringify(data || {}); } // axios 和 fetch 的表现不一样,axios可以直接在返回状态不为2xx的时候抛出异常 return window .fetch(`${apiUrl}/${endpoint}`, config) .then(async (response) => { if (response.status === 401) { await auth.logout(); window.location.reload(); return Promise.reject({ message: "请重新登录" }); } const data = await response.json(); if (response.ok) { return data; } else { return Promise.reject(data); } }); };
fetch捕捉不了异常
分类:
前端jira-hook学习笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!