을 잡은 할 수 없습니다 예상대로 엔드 포인트가 429로 응답 할 때 401 오류가 처리됩니다HTTP 요청 오류 코드 429은 내가 엔드 포인트에 POST 요청을 발행하고이 같은 오류를 잡기하고 <a href="https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API" rel="nofollow noreferrer">fetchApi</a>를 사용
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
}
);
동안 코드
else if (err.status === 429) {
// handle error differently
}
절대로 실행되지 않습니다.
EDIT1 : 전체 캐치는
(429)의 경우에는 도달하지 않습니다 401 개 및 429 상태 코드는 자바 스크립트/브라우저에서 다르게 처리하고 있습니까? 어떻게 429 오류를 잡아 내 방식으로 처리 할 수 있습니까?
전혀 실행'catch'인가? 그런 다음'err.status'가 * 정말로 정확히'429'인지 여부를 디버깅 해 보셨습니까? – deceze
catch는 401 상태 코드의 경우에 실행되지만 429의 경우에는 전혀 실행되지 않습니다. 오류가 브라우저의 JS 콘솔에 기록되기 때문에 catch가 실제로 429입니다. –
OK, 문제는 'else if'가 일치하지 않는다는 것이지,'fetch'가 약속을 거부하지 않는다는 것입니다, 그렇습니까? – deceze