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