示例在沙箱 iframe 里没有真实网络,所以用了一个「长得和 fetch 一样」的 fakeFetch(600ms 模拟延迟)。真实代码里把它换成 fetch,流程一模一样。
关键点:404 / 500 也是「服务器有应答」,fetch 不会 reject——要靠 res.ok 判断。只有断网这类网络层错误才走 catch。
body 必须是字符串(JSON.stringify),Content-Type 告诉服务器这是 JSON。