Javascript 使用JQuery将From提交到RESTAPI不起作用
我有一个RESTAPI正在运行,我正在使用JQuery向它发布一些数据 以下是我的JQuery代码的外观: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);
$(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
这将防止浏览器重新加载