Хорошо, я объясню проблему, в вашем коде реакции вы отправляете данные как body
, но пытаетесь использовать их как param
при весенней загрузке.
Я просто перепишу th axiosтолько запрос и пружинная потребительская часть.
А также то, что я мог при отправке данных в бэкэнд, вам не нужно заключать простое имя и пароль в другой объект, поэтому рассмотрите следующий формат.
Формат запроса
{
"username":"foo",
"password":"bar"
}
Код реагирования
const payload = this.state; // {"username":"foo","password":"bar"} inspect the request in browser
Axios.post("http://localhost:8080/user", payload).then(
res => {
console.log(res);
console.log(res.data);
});
Back End
Spring может напрямую отобразить объект запроса как pojo, используя @RequestBody
, поэтому создайтекласс.
User.class
public class User {
private String username;
private String password;
// Getter & Setter
}
Контроллер
Добавить User.class
в качестве RequestBody
@RequestMapping(value = "/user", method = RequestMethod.POST)
public String addEmployee(@RequestBody User user) throws ParseException {
System.out.println(user.getUsername());
return user.getUsername();
}
РЕДАКТИРОВАТЬ - СParam
Код реагирования
Axios.post("http://localhost:8080/user", null, { params: payload}).then(
res => {
console.log(res);
console.log(res.data);
});
Back end
@RequestMapping(value = "/user", method = RequestMethod.POST)
public String addEmployee(@RequestParam("username") String username, @RequestParam("password") String password) throws ParseException {
System.out.println(username);
return username;
}