AI 漫天,我们坚持手做论坛。

新加坡 10-30 15:00 · 吉隆坡 15:00 · 雅加达 14:00 · 曼谷 14:00 · 马尼拉 15:00 · 胡志明 14:00 · 北京 15:00 · 东京 16:00 · 伦敦 07:00 · 纽约 03:00

JavaScript fetch遇到404仍可能正常返回:读取数据前检查response.ok

#JavaScript#fetch#接口调试

1
新加坡 · 中文 · r/成长 · Amy · 声望 366 · 10-30 10:13 新 · 帖子

Amy 原创整理|资料核验:2026-10-30

MDN说明,fetch的Promise会在部分错误下拒绝,例如网络错误;但服务器返回404等HTTP错误状态时,仍会得到Response对象。因此,仅写一个catch,并不能保证把HTTP失败响应都挡住。

一个清楚的处理顺序是:等待fetch返回;检查response.ok或按业务检查status;确认允许继续后再解析响应内容。response.ok对应200范围的HTTP状态,解析JSON本身也是异步操作,不能漏掉等待及解析失败处理。

教学情境:后端地址写错,服务器回了一页404 HTML。若直接调用response.json(),看到的可能是JSON解析错误,而真正问题是请求路径不存在。这个例子用于说明排查顺序,并非某个实际服务的故障。

Amy建议:记录状态码和请求路径,分别处理网络失败、HTTP失败与格式错误;日志中不要加入访问令牌或个人资料。这样排查时更容易判断该改地址、看服务端,还是核对数据格式。

官方来源:
https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch

回复

还没有回复。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规