JQuery ajax 函数发送正确 value.But RestController 接收 null
JQuery ajax function sends the correct value.But RestController receives null
这些代码是我的 spring 引导项目的 RestController,
@RestController
@RequestMapping(value="/rest/user")
public class UserRestController {
@Autowired
private UserService userService;
@PostMapping("login")
public ResponseEntity<Boolean> authenticated(@RequestBody User user) {
System.out.println(user.getUsername() +":"+ user.getPassword()); //This line returns NULL password value
Boolean blogin = userService.authenticate(user.getUsername(), user.getPassword());
if(!blogin)
return new ResponseEntity<Boolean>(blogin, HttpStatus.NOT_ACCEPTABLE);
return new ResponseEntity<Boolean>(blogin, HttpStatus.OK);
}
}
下面的代码是JQuery ajax java脚本代码。
function ajax_login_submit() {
var user = {
username: $("#username").val(),
password: $("#password").val()
};
console.log(user);
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "rest/user/login",
data: JSON.stringify(user),
dataType: 'json',
success: function (data) {
var resultJson = JSON.stringify(data);
$('#helloUserDiv').html(resultJson);
console.log("SUCCESS : ", data);
alert(data);
},
error: function (e) {
var resultJson = e.responseText;
$('#helloUserDiv').html(resultJson);
console.log("ERROR : ", e);
}
});
}
console.log(user);
的 java 脚本 returns 正确的值。
{"username":"joseph","password":"password"}
但在 RestController 代码中,密码值丢失,"NULL"。
该行System.out.println(user.getUsername() + ":" + user.getPassword());
returns奇怪的值,"joseph:null"
JQuery ajax 方法是否可以不将 json 值传输到 REST 服务器?如果我犯了一些错误,请告诉我如何正确地将 json 值发送到 REST 服务器。
试试这个:
$.ajax({
type: "POST",
contentType: "application/json",
url: "rest/user/login",
data: JSON.stringify({"username": $("#username").val(), "password": $("#password").val()}),
dataType: 'json',
success: function (data) {
var resultJson = JSON.stringify(data);
$('#helloUserDiv').html(resultJson);
console.log("SUCCESS : ", data);
alert(data);
},
error: function (e) {
var resultJson = e.responseText;
$('#helloUserDiv').html(resultJson);
console.log("ERROR : ", e);
}
});
这些代码是我的 spring 引导项目的 RestController,
@RestController
@RequestMapping(value="/rest/user")
public class UserRestController {
@Autowired
private UserService userService;
@PostMapping("login")
public ResponseEntity<Boolean> authenticated(@RequestBody User user) {
System.out.println(user.getUsername() +":"+ user.getPassword()); //This line returns NULL password value
Boolean blogin = userService.authenticate(user.getUsername(), user.getPassword());
if(!blogin)
return new ResponseEntity<Boolean>(blogin, HttpStatus.NOT_ACCEPTABLE);
return new ResponseEntity<Boolean>(blogin, HttpStatus.OK);
}
}
下面的代码是JQuery ajax java脚本代码。
function ajax_login_submit() {
var user = {
username: $("#username").val(),
password: $("#password").val()
};
console.log(user);
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "rest/user/login",
data: JSON.stringify(user),
dataType: 'json',
success: function (data) {
var resultJson = JSON.stringify(data);
$('#helloUserDiv').html(resultJson);
console.log("SUCCESS : ", data);
alert(data);
},
error: function (e) {
var resultJson = e.responseText;
$('#helloUserDiv').html(resultJson);
console.log("ERROR : ", e);
}
});
}
console.log(user);
的 java 脚本 returns 正确的值。
{"username":"joseph","password":"password"}
但在 RestController 代码中,密码值丢失,"NULL"。
该行System.out.println(user.getUsername() + ":" + user.getPassword());
returns奇怪的值,"joseph:null"
JQuery ajax 方法是否可以不将 json 值传输到 REST 服务器?如果我犯了一些错误,请告诉我如何正确地将 json 值发送到 REST 服务器。
试试这个:
$.ajax({
type: "POST",
contentType: "application/json",
url: "rest/user/login",
data: JSON.stringify({"username": $("#username").val(), "password": $("#password").val()}),
dataType: 'json',
success: function (data) {
var resultJson = JSON.stringify(data);
$('#helloUserDiv').html(resultJson);
console.log("SUCCESS : ", data);
alert(data);
},
error: function (e) {
var resultJson = e.responseText;
$('#helloUserDiv').html(resultJson);
console.log("ERROR : ", e);
}
});