Как мне показать сообщение на стороне клиента 403, если электронное письмо не может быть отправлено? - PullRequest
1 голос
/ 08 мая 2020

Я пытаюсь показать предупреждающее сообщение, когда электронное письмо отправлено или получено неудачно. Если это не удается, я получаю 403 от бэкэнда. Но не знаю, как мне показать это здесь, на стороне клиента. В случае успеха я получаю 200. Прямо сейчас, в случае неудачи, если я console.log(res) (как вы можете видеть ниже), он показывает

res is not defined

Uncaught (in promise) Error: Request failed with status code 403

И во вкладке сети я получаю ответ. Все в порядке.

Я просто хочу показать это здесь на стороне клиента в моем компоненте реакции.

  handleClick = (id) => {
    axios
      .post(`http://localhost:3000/api/v1/users/send-post/${id}`)
      .then((res) =>
        console.log(res),
        res.status === 200 ? alert("Email sent"): null
      )
      .catch((err) => {
        if (err) {
          return alert("Sorry, Something went wrong")
        }
      })
    }

Ответы [ 2 ]

2 голосов
/ 08 мая 2020

Статус ошибки находится в err.response.status.

Измените

if (err) {
          return alert("Sorry, Something went wrong")
        }

на

if (err) {
          return alert("Sorry, Something went wrong. Status "+ err.response.status)
        }

Для справки вы можете проверить эту ссылку { ссылка }

0 голосов
/ 08 мая 2020

У вас запятая , после console.log звонка.

Дальше:

.then(res => {
   console.log(res);
   res.status === 200 && alert("Email sent");
})

Или другой вариант:

.then(res =>
   console.log(res) ||
   res.status === 200 ? alert("Email sent") : null
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...