AJAX登录过程中,如何给出提示id或密码是否无效?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (112)

我使用AJAX处理登录步骤,我想要做的是让用户知道在ID或密码中输入的值是错误的。

例如,如果用户在ID中输入错字,他会得到一个“错误的ID”警报(如果数据库中没有这样的ID),或者如果用户使用有效ID在密码中输入错字,应该有警报“密码错误!”。

这是前面的代码,

$(document).ready(function(){
$('#login').click(function(){
    $.ajax({
        url:"login.do",
        type:"post",
        data: $('#loginform').serialize(),
        dataType: "text",
        success: function(res){
            location.href="list.bo";  //Main Page
        },
        error: function(res){
            alert("Invalid ID or Password. Please check again");
        }
    })
})

})

以下是Back的代码,

    MemberBean result = dao.login(uid, pwd);
    if (result.getValidity()==1) {
        session.setAttribute("uid", uid);
        request.setAttribute("result", 1);
        forward.setRedirect(true);
        forward.setNextpath("/mypage/list.bo");
    } else if (result.getValidity()==0) {
        request.setAttribute("result", 0);
        forward.setRedirect(false);
        forward.setNextpath("/mypage/index.jsp");
    } else if (result.getValidity()==-1) {
        request.setAttribute("result", -1);
        forward.setRedirect(false);
        forward.setNextpath("/mypage/index.jsp");
    } 
    return forward;

下面是DAO。所以我希望DAO可以根据其结果设置变量(结果)的有效性(不管ID是错误还是密码错误)。但由于某种原因,DAO出现错误,我当前阻止了'else if'部分。

try {
            conn = getConnection(); 
            pstmt = conn.prepareStatement("SELECT * FROM MEMBER WHERE U_ID=? AND U_PWD=?");
            pstmt.setString(1, uid);
            pstmt.setString(2, pwd);
            result = pstmt.executeQuery();
            if (result.next()) {
                loginresult.setValidity(1);
                return loginresult;
            } 
            else if (result.getString("U_ID")==null) {
                System.out.println("dao login fail1");
                loginresult.setValidity(-1);
                return loginresult;
            } else if (result.getString("U_ID")==uid&&result.getString("U_PWD")!=pwd) {
                System.out.println("dao login fail2");
                loginresult.setValidity(0);
                return loginresult;
            } 
提问于
用户回答回答于

为了显示用户的错误消息,当你的ajax响应包含错误消息时,你可以简单地显示引导警报框(toastr库)。并重置你的表单,并且可以不刷新页面。

用户回答回答于

你需要从后端自定义消息,然后将其显示在警告框中

$(document).ready(function() {
  $('#loginform').submit(function(e) {
    e.preventDefault();
    $.ajax({
       type: "POST",
       url: '/class/login.php',
       data: $(this).serialize(),
       success: function(data)
       {
          if (data === 'Login') {
            window.location = '/user-page.php';
          }
          else {
            alert('Invalid Credentials');
          }
       }
   });
 });
});

扫码关注云+社区

领取腾讯云代金券