AJAX хатоҳоро дар JavaScript пурра ба даст гирифтан
Промис, ки 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);
}
);
});
Агар дархост муваффақ бошад, матни саҳифаро чоп кунед, ва агар чизе нодуруст рафт, хаторо чоп кунед.