[英]400 Bad request when trying to fetch from SpringBoot using React
我嘗試刪除具有給定 ID 的實體。 但是,當我嘗試從我的 API 中獲取時,我收到 400 bad request 錯誤。
async deleteFood(foodId) {
const params = {
'id' : foodId
}
const rawResponse = await fetch("food/delete", {
method:"POST",
headers: {'Content-Type': 'application/json'},
body: params,
});
const content = await rawResponse.json();
}
在我的 SpringBoot 日志中,它顯示缺少 id 參數:
WARN 7784 --- [nio-8080-exec-7] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required request parameter 'id' for method parameter type int is not present]
我已經嘗試將參數放入 JSON.stringify(),但這並沒有改變任何東西。
控制器代碼:
@PostMapping(path = "/delete")
public @ResponseBody int deleteById(@RequestParam int id) {
if (foodRepository.existsById(id)) {
foodRepository.deleteById(id);
return Response.SC_ACCEPTED;
}
return Response.SC_BAD_REQUEST;
}
您正在通過正文發送數據,但在控制器中您正在等待 @RequestParam
@PostMapping(path = "/delete")
public @ResponseBody int deleteById(@RequestParam int id) {
if (foodRepository.existsById(id)) {
foodRepository.deleteById(id);
return Response.SC_ACCEPTED;
}
return Response.SC_BAD_REQUEST;
}
您需要更改接收 id 參數(@RequestBody 而不是@RequestParam)的方式,例如:
@PostMapping(path = "/delete")
public @ResponseBody int deleteById(@RequestBody int id) {
if (foodRepository.existsById(id)) {
foodRepository.deleteById(id);
return Response.SC_ACCEPTED;
}
return Response.SC_BAD_REQUEST;
}
或更改您從 React 發送的方式(將其作為 url 參數發送)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.