XMLHttpRequest为非200状态

时间:2018-03-10 17:06:02

标签: http post xmlhttprequest

要验证我网站上的登录信息,我会向服务器发送POST请求。如果它返回403状态,则表示凭据不正确,200状态表示登录成功。

这是我用来发送该请求的代码:

var req = new XMLHttpRequest()
var form = document.getElementById("login")

req.onreadystatechange = function() {
    if (req.readyState !== 4) return

    if (req.status === 200) {
        console.log(req)
    } else if (req.status === 403) {
        document.getElementById("login-err").innerHTML = req.responseText
    } else {
        document.getElementById("login-err").innerHTML = "internal server error"
    }
}

req.open("POST", `https://${window.location.host}/newsession`, true)
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
req.send(`username=${form.username.value}&password=${form.password.value}`)

它适用于200状态,但当状态为403(或500)时,会在控制台中记录错误:Failed to load resource: the server responded with a status of 403 (Forbidden)

虽然这不是巨大的问题,但我希望,因为我正在处理状态代码,所以不应该有错误。有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:1)