【发布时间】:2021-02-11 19:06:44
【问题描述】:
我只是想通过 fetch 方法向我的 rest api 发送一个值,但似乎无法让它工作。 这是我目前拥有的:
反应:
getFloorplans() {
fetch('/api/ssid')
.then(response => response.json())
.then(message => {
this.setState({
floorplan: message[0]
})
});
fetch('/api/ssid', {
method: "POST",
//make sure to serialize your JSON body
value: {ssid: this.state.SSID}
})
.then( (response => response.json()
.then(message => {
console.log(message);
})
))};
Spring Boot REST API:
@RestController
public class FloorplanController {
//Floorplan floorplan = new Floorplan();
@RequestMapping("/api/ssid")
public void someMethod(@RequestParam String value) {
System.out.println(value);
}
}
【问题讨论】:
-
如果你正在执行一个POST请求,你应该使用
@PostMapping("/api/ssid"),目前没有指定HTTP方法。第二件事,我不太了解 React,但如果您将值作为 JSON 主体发送,您应该在方法中使用@RequestBody。 -
另外,我认为你必须使用
body而不是value,因为这是fetch所期望的:developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch -
然后我如何从控制器的主体中获取数据?
-
我对 Spring 不熟悉,但你应该有一些请求参数来提取主体 @Dylan75
标签: reactjs spring-boot post fetch rest