springboot/springmvc项目 利用ajax向controller层发送参数接收为Null问题,使用shiro注册用户MD5对密码进行加密

·废话不多说,直接上代码。最近在利用ajax注册用户时,controller层接收的用户名及其密码始终为null,百思不得其解,
首先大家需要知道一点,jquery已经对ajax进行了较好的封装,使用ajax之前,我们可以先引入jquery库,这样可以使用ajax了。。

<script type="text/javascript" src="js/jquery-2.1.1.min.js"></script>
<script type="text/javascript">
    function fun() {
        // alert(1)
        // var a=document.getElementById("username").value();
    }

    function regist() {

        var username=document.getElementById("username").value;
        // var username=$("#username").val();
        alert(username)
        var password=document.getElementById("password").value;
        alert(password)
        var localurl="http://" + window.location.host + "/regist";
        alert(localurl)
         $.ajax({
                  type:"post",
                  async:true,
                  // contentType: "application/json",
                   data:{"username":username,
                         "password":password,
                   },
                   dataType:"json",
                   url:localurl,
               });
    }
</script>


<body>
这里是注册页面 !!!
 <div style="text-align: center;border: 1px;background-color: antiquewhite;">
    <form action="" method="" id="registForm">
        <div>
            <input type="text" placeholder="请输入用户名" style="width: 500px;height: 50px" id="username" name="username" onmousedown="fun()"/>
        </div>
        <div>
            <input type="password" value="请输入密码" style="width: 500px;height: 50px" id="password" name="password" onmousedown="fun1()"/>
        </div>
       <button  type="submit" style="width: 500px;height: 50px" onclick="regist()">点击注册</button>
    </form>
</div>
</body>

在这里插入图片描述

 //    注册
    /*@RequestMapping("/regist")
    @ResponseBody
    public Map regist(@RequestParam(value = "username",required = false) String username,
                      @RequestParam(value = "password",required = false) String password){
        User user=new User();
        user.setUsername(username);
        logger.info("已经进来了!!!");
        System.out.println(username);
        System.out.println(password);
        Map map=new HashMap();
        try {
            String substring = UUID.randomUUID().toString().substring(0, 4);
            Md5Hash md5Hash = new Md5Hash(password, substring, 1024); //对密码进行加盐 1024次加密
            user.setSalt(substring);
            user.setPassword(md5Hash.toString());
            int a=userService.regist(user);
            if(a>0){
                map.put("regist",true);
            }else{
                map.put("regist",false);
            }
        } catch (Exception e) {
            e.printStackTrace();

        }
        return map;
    }

或者

 @RequestMapping("/regist")
    @ResponseBody
    public Map regist(User user){
        logger.info("已经进来了!!!");
        Map map=new HashMap();
        try {
            String substring = UUID.randomUUID().toString().substring(0, 4);
            Md5Hash md5Hash = new Md5Hash(user.getPassword(), substring, 1024); //对密码进行加盐 1024次加密
            user.setSalt(substring);
            user.setPassword(md5Hash.toString());
            int a=userService.regist(user);
            if(a>0){
                map.put("regist",true);
            }else{
                map.put("regist",false);
            }
        } catch (Exception e) {
            e.printStackTrace();

        }
        return map;
    }
*/

在控制台输出的username和password始终为Null,经过翻阅百度之后,将ajax中的
// contentType: “application/json”, 一栏去调即可。

具体的原理在下并没有去深究,以后会慢慢了解。

另外我在controller层,使用了shiro框架在进行用户注册时,对密码进行了1024次散列加盐加密。具体业务需要大家了解一下shiro框架。


这辈子坚持与不坚持都不可怕,怕的是独自走在坚持的道路上!!!

欢迎大家加入技术群聊,感谢大家!!!
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值