首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >AJAX登录过程中,如何给出id或密码无效的警告?

AJAX登录过程中,如何给出id或密码无效的警告?
EN

Stack Overflow用户
提问于 2018-06-13 21:55:10
回答 3查看 230关注 0票数 0

嗨,我是网络开发的新手。

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

例如,如果用户在ID中输入了错误的ID,他将得到一个警告"Wrong ID“(如果数据库中没有这样的ID),或者如果用户在具有有效ID的Password中输入了错误,应该会有一个警告"Wrong Password!”。

我还没有找到参考资料,但我希望这个过程可以通过AJAX完成。请给我举个例子或参考。

  • updated

这是前面的代码,

代码语言:javascript
复制
$(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");
        }
    })
})

})

下面是后面的代码,

代码语言:javascript
复制
    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可以根据结果设置变量( result )的有效性(无论是ID错误还是password错误),但由于某些原因,DAO出现错误,我目前阻止了'else if‘部分。

代码语言:javascript
复制
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;
            } 
EN

回答 3

Stack Overflow用户

发布于 2018-06-13 22:00:42

您需要从后台查看自定义消息,然后将其显示在警告框中

代码语言:javascript
复制
$(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');
          }
       }
   });
 });
});
票数 0
EN

Stack Overflow用户

发布于 2018-06-13 22:00:45

Dont specify which is wrong

这不能回答您的问题,但可以帮助您决定是否要将其开发到应用程序中。指定用户存在,但密码是错误的,可能会降低应用程序安全性的有效性,并激励用户在知道自己的用户名正确的情况下找到密码。

票数 0
EN

Stack Overflow用户

发布于 2018-06-13 22:10:50

为了向用户显示错误消息,当响应包含错误消息时,您可以简单地显示一个引导警告框( ajax toastr库)。并重置表单,无需刷新页面即可实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50839048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档