如何从前端访问状态代码

How can I access the status code from front end

router.post("/login", async (req, res) => 
{
    try
    {
        const user = await User.findByCredentials(req.body.email, req.body.password, req.body.email)
        console.log(user)
        if(user === undefined)
        {
            return res.sendStatus(404)
        }
        const token = await user.generateAuthToken()
        console.log(token)
    }
    catch(e)
    {
        console.log(e)   
    }
})

我正在从后端发送状态代码 404。 但问题是我不能在我的前端js中使用这个状态码。

const xhr = new XMLHttpRequest();
let form = JSON.stringify({
email: $uyeolFormEmail.value,
password: $uyeolFormPassword.value
});
xhr.open("POST", "/login")
xhr.setRequestHeader('Content-type', 'application/json')
xhr.send(form)
console.log(xhr.status)
if(xhr.status === 200 || xhr.status === 201)
{
    window.location.href="/takvim"
}
else if(xhr.status > 299)
{
    window.location.href="/"
}

我试过 xhr.status 但没用。 有什么建议吗?

使用 XMLHttpRequest 对象,您可以定义一个函数,以便在请求收到答复时执行。

该函数在 XMLHttpResponse 对象的 onreadystatechange 属性 中定义:

const xhr = new XMLHttpRequest();
let form = JSON.stringify({
email: $uyeolFormEmail.value,
password: $uyeolFormPassword.value
});

xhr.onreadystatechange = function() {

if (this.readyState == 4 && this.status == 200) {
   window.location.href="/takvim"
 }
else if(this.status > 299)
{
 window.location.href="/"
}

}; 

xhr.open("POST", "/login")
xhr.setRequestHeader('Content-type', 'application/json')
xhr.send(form)