我使用fetchApi向端点发出POST请求,并捕获如下错误:

fetch(new Request(url, {
  method: 'POST',
  headers: { ...defaultHeaders, ...headers } ,
  credentials: 'include',
  body: JSON.stringify(body)
})).then(
  // handle correct reponse
).catch(
  if (err.status === 401) {
       // handle error nicely
    } else if (err.status === 429) {
       // handle error differently
    } else {
      // handle error yet another way
    }
);

尽管按预期处理了401错误,但端点以429响应时,代码
else if (err.status === 429) {
       // handle error differently
    }

永远不会执行。

编辑1:在429的情况下,从未达到整个捕获量

javascript /浏览器对401和429状态码的处理方式不同吗?
如何捕获429错误并以自己的方式处理?

最佳答案

看起来大多像是错误的期望。仅当响应的catchtype时,才会拒绝promise(并因此调用"error"),这仅在非常具体的有限情况下才适用。



换句话说,响应为429的请求仍然是成功执行的请求。

09-17 01:10