Javascript提取未捕获错误,跳过了catch语句

时间:2019-05-06 10:10:15

标签: javascript http promise try-catch fetch

我正在将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的数据作为响应{“ DuplicateUserName”:[“用户名'blabla'已被使用。”]}时,我得到TypeError:handleFetch(...)是在我的控制台中未定义。我不太确定该怎么办。

我已经在catch语句中设置了断点,并注意到我的代码从未到达过断点。

0 个答案:

没有答案