ajax获取不到后台返回值问题

解决了一上午,一直在爬坑。现在出坑来总结一下遇到的问题。
首先背景是前台一个登陆框,ajax异步传输验证登陆账号密码是否正确。

<div class="login-field">
        <input type="text" name="name" required="" id="username"/>
        <label>Username</label>
    </div>
    <div class="login-field">
        <input type="password" name="pwd" required=""  id="pwd"/>
        <label >Password</label>
    </div>
    <button type="submit" onclick="tologin()">Submit</button>

function tologin() {
    var name = $("input[id='username']").val();
    var pwd = $("input[id='pwd']").val();
    $.ajax({
        url:"xxx",
        data :{name:name,password:pwd},
        success:function (data) {
            if (data.message==="success") {
               。。。
            }else {
               。。
            }
        }
    });
}

然后在后台使用springboot进行接收。这一步就有一个坑。必须添加@ResponseBody注解!!!

@RequestMapping("login")
@ResponseBody
public Map<String, Object> login( User user){
    Map<String, Object> resultMap = new HashMap<String, Object>();
    String str = "";
    boolean flag = false;
    try {
        flag = login.toLogin(user);
        System.out.println("登录--->"+flag);
    }catch (Exception e){
        e.printStackTrace();
    }
    if (flag==true){
        resultMap.put("message","success");
    }else {
        resultMap.put("message","");
    }

    System.out.println("m"+flag);
    return resultMap;
}

完事后反复尝试ajax就是获取不到controller返回值。而且发现每次在提交的时候会发现所有输入框中数字全部清空了,说明页面重新刷新了。
后来问前端同事,需要把submit改成button。因为真正导致页面刷新的是这个type为submit的input标签,强制要求页面刷新,因为页面刷新了,那么ajax返回的信息来到了一个完全陌生的页面,自然返回的是失败啊。

 <button type="submit" onclick="tologin()">Submit</button>

改成
<button type="button" onclick="tologin()">Submit</button>

好在是搞定了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值