qq_40619811 2022-08-03 21:50 采纳率: 89.8%
浏览 35
已结题

springboot登录界面,如何将用户的密码和用户名利用ajax提交到后台并实现登录

你好,我现在要做个登录界面,有用户的用户名、密码和验证码。验证码暂时不考虑,随便输什么都可以,只考虑用户名和密码两样,如何实现登录。
功能:
1、如果用户名错误,数据库没有用户名,则显示没有该用户
2、如果用户名正确,输入的密码与数据库里的密码不符合,则显示密码输入错误
3、如果用户名和密码都输入正确,则正常登录到index.html页面。
这里用了ajax来传输表单的数据。
那么如何运用SpringBoot和ajax来实现登录功能呢?
这是登录页面的HTML代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
  <style type="text/css">
    #log{
      position: absolute;
      top: 50%;
      left: 50%;
      margin-left: -10%;
      margin-top: -10%;
    }
  </style>
</head>
<body>
<div style="width: 30%;height: 30%" id="log">
  <img src="/image/saturn.png" height="34%" width="34%"/>
  <form id="login" name="login" th:object="${pwd}" method="post"> <!--th:action="@{/loginyanzheng}"-->
    <label>用户名</label>
    <input type="text" id="username" name="username" style="font-size: 18px"></input><br>
    <label>密码</label>
    <input type="password" id="passwords" name="passwords" style="font-size: 18px;margin-left: 16px"></input><br>
    <label>验证码</label>
    <input type="text" id="yanzheng" name="yanzheng" style="font-size: 18px"></input><br>
    <div>
    <input type="button" id="sub" value="确认" style="font-size: 18px"></input>
    <input type="button" id="yz" value="验证码" style="font-size: 18px"></input>
    <input type="button" id="exit" value="退出" style="font-size: 18px"></input>
    </div>
  </form>
</div>
<script type="text/javascript">
  $("#sub").click(function (event) {
    var a= $("#username").val();
    var b=$("#passwords").val();
    var c=$("#yanzheng").val();
    console.log(a+"#"+b+"#"+c);
    $.ajax({
      type: 'post',
      url: './login1',
      async: true,
      error: '重新请求',
      contentType: "application/json;charset=utf-8",
      type: 'json',
      data: {
    "userName":$("#userName").val(),"passwords":$("#password").val(),"yanzheng":$("#yanzheng").val(),
      },
      success: function (res) {

      },
      error: function (res) {

      }
    })
  })
</script>
</body>
</html>

这是后台Controller的代码

@Controller
public class Controller3 {
    @RequestMapping("/login")
    @ResponseBody
    public Model login(Model mp){
        //mp.addAttribute("pwd",new Pwd());
        //System.out.println(pwd.getUsername());
       return mp;
    }
    @PostMapping("/login1")
    @CrossOrigin
    @ResponseBody
       public String loginresult(@RequestParam("username")String username,@RequestParam("passwords")String passwords,
                                 @RequestParam("yanzheng")String yanzheng){
           System.out.println(username+"#"+passwords+"#"+yanzheng);
           return "success";
        }
}


如何实现这一功能呢?注意,不要跳转到/login1页面,不要跳转。
但问题是后端的信息,就是login1下的System.out.println(username+"#"+passwords+"#"+yanzheng);这个信息,没有执行到,打印不了相应的信息,包括用户名、密码、验证码信息,这是为什么?
另外,如果输入正确,自动跳转到index.html页面,应该怎么办?

  • 写回答

2条回答 默认 最新

  • 耳东陈2022 2022-08-04 08:51
    关注

    先看下ajax请求的返回状态是多少401?500?如果ajax能正常请求,则在后端loginresult方法中加入从数据库查用户密码,然后再跟你传过来的密码匹配,匹配成功返回success,失败返回fail,前端在ajax的success的方法里获取res的值,如果是success跳转到index.html 如果是fail则提示失败

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月12日
  • 已采纳回答 8月4日
  • 修改了问题 8月3日
  • 创建了问题 8月3日

悬赏问题

  • ¥15 Centos7 / PETGEM
  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗