核心是动态拼接URL前缀:在配置文件中按环境定义BASE_URL,封装fetch函数自动处理路径拼接、headers和错误,用new URL安全构造URL,并根据同源性动态设置mode。

处理不同环境下的基础请求路径,核心是把 URL 的“前缀”抽离出来,根据当前运行环境(开发、测试、生产)动态拼接,而不是在每个 fetch 调用里硬编码完整地址。
统一管理基础路径变量
推荐在项目入口或配置文件中定义一个环境感知的 BASE_URL,例如:
- 开发环境用
http://localhost:3000/api - 测试环境用
https://test-api.example.com/v1 - 生产环境用
https://api.example.com/v1
可通过环境变量(如 process.env.NODE_ENV 和自定义 REACT_APP_API_BASE)或构建时注入方式区分。避免直接写死,也别在每个 fetch 里重复判断。
封装 fetch 请求函数
把 BASE_URL 和通用配置(如 headers、credentials)封装进一个自定义函数,让业务代码只关心接口名和参数:
- GET 请求:传入相对路径,如
get('/users')→ 自动拼成BASE_URL + '/users' - POST 请求:支持自动添加
Content-Type: application/json,并序列化 body - 统一处理
!res.ok抛错,避免漏判 4xx/5xx
这样既减少重复代码,也便于后续加拦截器(如 token 注入、日志、错误统一上报)。
注意跨域与 mode 配置的一致性
基础路径变化可能影响跨域行为:
- 本地开发代理(如 vite / webpack devServer)通常把
/api代理到后端,此时前端仍发同源请求,mode: 'same-origin'即可 - 若直连远程域名(如测试环境),需确保服务端返回正确的 CORS 头,并在 fetch 中显式设
mode: 'cors'和credentials: 'include'(如需带 cookie) -
mode不应随环境硬编码,而应由目标域名是否同源决定;可用new URL(url).origin === location.origin简单判断
URL 拼接要安全可靠
避免字符串拼接出错(如多斜杠、缺斜杠):
- 用
new URL(endpoint, BASE_URL)构造完整 URL,浏览器自动标准化路径 - 例如:
new URL('/users/1', 'https://api.example.com/v1')→https://api.example.com/v1/users/1 - 比
BASE_URL + '/' + endpoint更健壮,尤其当BASE_URL末尾有无/不确定时
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











