JavaScript-те AJAX қателерін толық құстыру
fetch әдісі қайтарған промис,
тек қана желілік қате болған жағдайда
қателікпен аяқталады. Егер сервер
404 немесе 500 сияқты
жауап статусымен қайтса,
промис сәтті аяқталады,
бірақ ok статусы
false мәніне орнатылады.
Екі түрлі қатені де құсайық:
button.addEventListener('click', function() {
let promise = fetch('/ajax.html')
.then(
response => {
if (response.ok) {
return response.text();
} else {
console.log('жауаптың нашар статусы');
return '';
}
},
).then(
text => {
console.log(text);
}
).catch(
error => {
console.log(error);
}
);
});
HTTP жауабының нашар статусына байланысты
қатені де catch блогы
ұстай алатындай етейік.
Бun үшін оны әрі қарай
throw арқылы тастаймыз:
button.addEventListener('click', function() {
let promise = fetch('/ajax.html')
.then(
response => {
if (response.ok) {
return response.text();
} else {
throw new Error('жауаптың нашар статусы');
}
},
).then(
text => {
console.log(text);
}
).catch(
error => {
console.log(error);
}
);
});
Егер сұрау сәтті болса, беттің мәтінін шығарыңыз, ал егер бірдеңе дұрыс болмаса, қатені шығарыңыз.