При получении Javascript ошибка не перехватывается, пропуская мимо оператора catch - PullRequest
0 голосов
/ 06 мая 2019

Я отправляю HTTP-запросы на сервер и при получении проверяю статус.Если статус не 200, я хочу выбросить ответ сервера и поймать его, чтобы сделать что-то с ошибкой.

const handleRegistration = (nickname, email, password) => {
    fetch("https://localhost:44317/api/Authentication/register",
        {
            method: "POST",
            body: JSON.stringify({nickname: nickname, email: email, password: password}),
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            }
        })
        .then((response) => {
            if (response.status === 200) {
                location.href = "../login/login.html";
            } else {
                throw response.json();
            }
        })
        .catch((response) => {
            // Do something
        });
};

Когда я регистрирую новую учетную запись, где все поля ввода действительны,программа работает отлично.Но когда я ввожу данные, которые заставляют сервер возвращать 400 POST с именем Response {"DuplicateUserName": ["Имя пользователя 'blabla' уже занято."]}, Тогда я получаю TypeError: handleFetch (...)не определено в моей консоли.Я не совсем уверен, что делать.

Я установил точки останова в операторе catch и заметил, что мой код никогда не достигает этого.

...