Javascript 使用JQuery将From提交到RESTAPI不起作用

Javascript 使用JQuery将From提交到RESTAPI不起作用,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个RESTAPI正在运行,我正在使用JQuery向它发布一些数据 以下是我的JQuery代码的外观: $(document).ready(function () { $('#login-form').submit(function () { var user = $('#uname').val(); var pass = $('#pwd').val(); alert('username = ' + user);

我有一个RESTAPI正在运行,我正在使用JQuery向它发布一些数据

以下是我的JQuery代码的外观:

$(document).ready(function () {

    $('#login-form').submit(function () {

        var user = $('#uname').val();
        var pass = $('#pwd').val();

        alert('username = ' + user);
        alert('password = ' + pass);

        var JSONObject = { 'userName': user, 'password': pass };
        var jsonData = JSON.parse(JSONObject);

        $.ajax({
            url: 'http://127.0.0.1:8080/user/login',
            method: 'POST',
            data: { userName: user, password: pass },
            dataType: 'JSON',
            contentType: 'application/json',
            success: function (data, status, jqXHR) {
                //Do something
                console.log('data = ' + data);

            },
            error: function (jqXHR, status, errorThrown) {
                alert('error ' + errorThrown);

            }
        });

    });

});
但是,此代码无法访问API。我在服务器日志中没有收到预期的消息。 单击表单的提交按钮时,浏览器将重新加载,并在url中显示表单输入。仅此而已

我的API是用Java编写的,这是相关的方法

@RequestMapping(value = "/user/login", method = RequestMethod.POST)
    public ResponseEntity<User> logUser(@RequestBody User user){

        User loggedUser = loginService.authenticateUser(user);

        if(loggedUser != null){
            System.out.println("User found");
            return new ResponseEntity<User>(loggedUser, HttpStatus.ACCEPTED);
        }else{
            //user does not exsits
            System.out.println("User not found");
            return new ResponseEntity<>(HttpStatus.NO_CONTENT);
        }

    }
@RequestMapping(value=“/user/login”,method=RequestMethod.POST)
公共响应日志用户(@RequestBody User){
用户loggedUser=loginService.authenticateUser(用户);
if(loggedUser!=null){
System.out.println(“用户找到”);
返回新的响应状态(loggedUser,HttpStatus.ACCEPTED);
}否则{
//用户不存在
System.out.println(“未找到用户”);
返回新的响应属性(HttpStatus.NO_内容);
}
}

我真的不明白怎么了。没有显示任何错误。有人能告诉我为什么会发生这种情况,以及如何解决这个问题。

问题是浏览器在提交事件时正在重新加载。 您需要像这样添加preventDefault()方法

$("#login-form").submit(function (event) {
      event.preventDefault()
      //further code here
这将防止浏览器重新加载