作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在运行一个 REST API,并且我正在使用 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);
}
}
我真的不明白哪里出了问题。没有显示任何错误。有人可以指出为什么会发生这种情况以及如何解决此问题。
最佳答案
问题是浏览器在提交事件时重新加载。您需要像这样添加 PreventDefault() 方法
$("#login-form").submit(function (event) {
event.preventDefault()
//further code here
这将阻止浏览器重新加载
关于javascript - 使用 JQuery 向 REST API 提交 From 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43501381/
我是一名优秀的程序员,十分优秀!