Uvamizi Kamili wa Makosa ya AJAX katika JavaScript
Ahadi promise ambayo inarudisha fetch,
inakamilika kwa hitilafu, ikiwa tu kosa la mtandao
limetokea. Ikiwa seva imerudisha jibu
na hali status ya 404 au 500,
basi ahadi itakamilika kwa mafanikio,
lakini wakati huo hali ok itakuwa
imewekwa kuwa false.
Wacha tuvamie aina zote mbili za makosa:
button.addEventListener('click', function() {
let promise = fetch('/ajax.html')
.then(
response => {
if (response.ok) {
return response.text();
} else {
console.log('hali mbaya ya jibu');
return '';
}
},
).then(
text => {
console.log(text);
}
).catch(
error => {
console.log(error);
}
);
});
Wacha tufanye ili kosa linalohusiana
na hali duni ya jibu la HTTP pia
lisakwe na kizuizi catch.
Ili kufanya hivyo, tutaikwenda mbali zaidi
kupitia throw:
button.addEventListener('click', function() {
let promise = fetch('/ajax.html')
.then(
response => {
if (response.ok) {
return response.text();
} else {
throw new Error('hali mbaya ya jibu');
}
},
).then(
text => {
console.log(text);
}
).catch(
error => {
console.log(error);
}
);
});
Onyesha maandiko ya ukurasa, ikiwa ombi lilifanikiwa, na kosa, ikiwa kitu kibaya kimetokea.