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 блоги томонидан ушланиши учун
уни 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);
}
);
});
Агар сўров муваффақиятли бўлса, саҳифа матнини чиқаринг, ва агар бирор нарса нотўғри бўлса, хатоликни чиқаринг.