目前我有一个 axios post 请求,可以很好地将数据发送到 Spring Boot 后端。但它只是将单个数据列表包装到 json 中并将其作为请求的正文发送:
例子:
sendAllData(data) {
return axios.post(API_URL + "receiveData", JSON.stringify(data),
{ headers: { "Content-Type": "application/json; charset=UTF-8" },
}).then(response=> console.log("repsonse", response.status)) // is 201
它在后端接收它:
@RequestMapping(path = "/receiveData", method = RequestMethod.POST)
public ResponseEntity<Void> receiveData(@RequestBody Collection<ActivePOJO> activitePOJOS) {
//DO WORK WITH activePOJOS DATA
return new ResponseEntity<>(HttpStatus.CREATED);
}
但是,除了这些信息之外,我还需要发送一些其他信息,例如 user.id(例如),因此我需要我的后端接收这样的信息:
public ResponseEntity<Void> receiveData(@RequestBody Collection<ActivitePOJO> activePOJOS, Long userID)
但是我不知道我应该用哪种方式来准备 axios post 来处理类似的事情。我应该使用参数而不是主体吗?
最佳答案
您可以在带有 axios 的请求中同时使用参数和正文。将 userID 作为参数发送:
sendAllData(data) {
return axios.post(API_URL + "receiveData", JSON.stringify(data),
{ headers: { "Content-Type": "application/json; charset=UTF-8" },
params: { userID: 1 }, //Add userID as a param
}).then(response=> console.log("repsonse", response.status)) // is 201
并在带有@RequestParam
注解的 Controller 中接收用户ID:
public ResponseEntity<Void> receiveData(@RequestBody Collection<ActivitePOJO> activePOJOS, @RequestParam("userID") Long userID){
// here you can access userID value sent from axios
}
关于reactjs - react : axios post request with both params and body,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61719658/