Внешний интерфейс
Здесь вы делаете запрос в виде переменной Path, которая добавляется к URL.
http://[my ip address]:8000/add/stateName
.
var xmlhttp = new XMLHttpRequest(); // new HttpRequest instance
xmlhttp.open("POST", "http://[my ip address]:8000/add?name="+ this.state.name);
xmlhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xmlhttp.send();
Backend
@RequestMapping(value = "/add/{name}", method = RequestMethod.POST)
@ResponseBody
public String getFoos(@PathVariable(name="name") String name) {
System.out.println("Received POST request:" + name);
return name;
}
Примечание: нет необходимости использовать @ResponseBody
, если вы используете @RestController
Если вы хотите отправить несколько данных, как показано ниже, то идеальным способом является создание одного DAO / DTO на стороне сервера
const booking = {
name: this.state.name,
location: this.state.location,
pax: this.state.pax,
};
Backend
public class StateDto{
private String name;
private String location;
private String pax;
//Getter-Setters, AllArgConstructor-SuperConstructor
}
Тогда ваш контроллер будет следующим:
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public String getFoos(@RequestBody StateDto stateDto) {
System.out.println("Received POST request:" + stateDto.getName());
return stateDto.getName();
}