Java Spring framework HttpMessageNodeTableException:缺少必需的请求正文

Java Spring framework HttpMessageNodeTableException:缺少必需的请求正文,java,reactjs,spring,post,axios,Java,Reactjs,Spring,Post,Axios,我试图在Spring中的React to a backend server中发出post请求,但不断收到以下错误: [错误]- org.springframework.http.converter.httpMessageNodeTableException: 缺少必需的请求正文 它在邮递员身上很管用 来自react部分的代码: let testeDTO = JSON.stringify({ email: "teste@@teste.com", senha: "1234", grupo

我试图在
Spring
中的React to a backend server中发出post请求,但不断收到以下错误:

[错误]- org.springframework.http.converter.httpMessageNodeTableException: 缺少必需的请求正文

它在邮递员身上很管用

来自react部分的代码:

let testeDTO = JSON.stringify({
  email: "teste@@teste.com",
  senha: "1234",
  grupo: 1
});

axios
  .post("http://192.168.0.49:8080/site/login/", testeDTO, {
    headers: {
      "Content-Type": "application/json"
    }
  })
  .then(response => {
    console.log(response);
  })
  .catch(erro => {
    console.log(erro.response);
  });
rest控制器上的注释:

@RestController
@RequestMapping("/site/login")
来自Spring的代码:

@PostMapping
public testeDTO login(@RequestBody TesteDTO testeDTO) {

}
CORS等级:

@WebFilter(urlPatterns = {"/*"})
public class CORSFilter implements Filter {

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "GET, PUT, POST, DELETE, OPTIONS");
        response.setHeader("Access-Control-Allow-Headers", "*, Content-Type, authorization, grupo, usuario");
        filterChain.doFilter(request, response);
    }
}
DTO代码:

public class TesteDTO {

    private String email;
    private String senha;
    private Long grupo;

    //getters and setters
}

显然,axios post上的头需要用{}包装。所以,在我解决这个问题太久之后,把它留给那些在这个问题上遇到类似问题的人

var headers = {
        'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*',
            'Access-Control-Allow-Methods': 'POST',
    };
axios
  .post("http://192.168.0.49:8080/site/login/", testeDTO, {headers})
  .then(response => {
    console.log(response);
  })
  .catch(erro => {
    console.log(erro.response);
  });

请尝试
@PostMapping(consumes=MediaType.APPLICATION\u JSON)
谢谢您的回复,但在我将方法上的注释更改为:@PostMapping(consumes=“APPLICATION/JSON”)后,错误仍然存在。编辑问题以添加我的CORS类。请将
TesteDTO的代码共享到
。您是否能够看到Spring接收到的请求(例如,通过在过滤器中设置断点)?此外,据我所知,应该可以将负载作为JavaScript-/TypeScript对象传递给
axios.post(url[,data[,config]])
,因此手动编组似乎不必要。yTeste dto只有atributtes电子邮件、senha和grupo。不,它不会到达后端的任何断点,错误发生在方法之前。