#javascript #fetch
#javascript #выборка
Вопрос:
Я искал это снова и снова, но не могу найти правильный ответ
Используя выборку, чтобы выдавать ошибки при получении статуса, отличного от ok, мы должны сделать это вручную. Серверная часть предоставляет конкретное сообщение об ошибке в виде кода ошибки 401,404 и т.д. Я хочу получить к нему доступ при моей выборке, но не знаю как.
.then((response) => {
if (response.ok) {
return response.text();
}
else {
throw new Error(response.text()); ///THIS DOES NOT WORK.
}
})
.then(result => alert ("Added Successfully"))
.catch(error =>alert (error.message)); ///AND OF COURSE NEITHER DOES THIS.
Комментарии:
1. попробуйте
console.log(error)
сначала посмотреть, как выглядит ошибка, затем вы можете указать свойства, к которым хотите получить прямой доступ2. спасибо за ваш ответ! console.log (ошибка) выдает ошибку: [обещание объекта]
Ответ №1:
Вы должны записать свой ответ в консоль и посмотреть, что он содержит. Вы также должны получить доступ к объекту ответа следующим образом: response.text. Вы получаете к нему доступ как к функции. Вероятно, вам также придется проанализировать ответ, прежде чем вы получите доступ к чему-либо. Даже если вы не опубликовали содержимое ответа, следующий фрагмент должен указать вам правильное направление.
Проверьте фрагмент ниже, который показывает вам успешную обработку ошибок.
fetch("http://httpstat.us/404")
.then( response => {
if (!response.ok) {
throw new Error(response)
}
return response.json()
})
.catch( err => {
console.log(err.message);
})
Комментарии:
1. Спасибо за ваш ответ. Когда я запускаю это, консоль. журнал выводит [object Promise] не фактическое сообщение?