正在尝试通过ReactJS将对象发送到Sping Boot

o7jaxewo  于 2022-12-03  发布在  React
关注(0)|答案(1)|浏览(170)

我尝试将此post对象发送到spring Boot ,但一直收到此错误:

Error: Required request body is missing: public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.String>> com.example.RegisterLogin.controller.RegisterController.registerHandler(java.lang.Object)

我不明白为什么。
这是我用Java编写的代码:

@PostMapping("/register")
    public ResponseEntity<Map<String,String>> registerHandler(@RequestBody Object registerDTO) {
        log.info("User: {}",registerDTO);
        return ResponseEntity.ok(registerService.saveUser((RegisterDTO) registerDTO));
    }

这是我在reactjs中编写的代码:

export class RegisterService{
        save(user){
         console.log({ method: 'POST', headers: { accept: 'application/json', body: JSON.stringify({registerDTO: user})}})
       fetch('http://localhost:8080/api/auth/register', { method: 'POST', headers: { accept: 'application/json', body: JSON.stringify({registerDTO: user})}})
       .then(data => console.log(data.json())) // Parsing the data into a JavaScript object
       .then(json => alert(JSON.stringify(json))) 
       }
 }

我可以通过控制台看到它发送以下信息:

找出问题所在,但React向我发送了另一个对象:(Spring不喜欢)

{registerDTO={name=w, dsurname=wd, age=3, sex=MALE, role=USER, email=ijwd@wdmiwd.it, password=wdkledml}}

与 Postman 我得到这个和一切工作:

{name=edfew, surname=feefewe, email=eeffe@gmail.com, password=efefefe, age=23, sex=MALE, role=USER}

有人知道怎么修吗

pepwfjgg

pepwfjgg1#

看起来您返回的是console.log的结果,而不是.json()函数的promise。您需要从.json()函数返回promise。

.then(data => console.log(data.json()))

//should become:

.then(data => data.json())

相关问题