我使用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错误并以自己的方式处理?
最佳答案
看起来大多像是错误的期望。仅当响应的catch
为type
时,才会拒绝promise(并因此调用"error"
),这仅在非常具体的有限情况下才适用。
换句话说,响应为429的请求仍然是成功执行的请求。