在浏览器中使用 fetch 的时候,后端因为用户没有认证,返回一个 401 状态码和一些信息,本来打算在 fetch 的 then 里,通过判断 response 的 status 来做区别处理,结果实际情况是,浏览器在发起 fetch 请求后因为返回的状态码是 401,判断请求失败抛了异常,我带着返回内容的响应体和响应状态码全都没了,用.catch()捕获的参数只有一个 TypeError,包含的内容非常有限。
按照网上各路 dalao 的教程来说,应该就算是状态码是 401,但是仍然收到了完整的响应,应该会拿到完整的响应对象的,但是实际上并不是这样。

这里我尝试打印响应对象,但是并没有执行 then 里的逻辑,而是走了 reject,回调方法的参数是一个 TypeError。
还有一些我看不懂的 dalao 们的讨论