Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro 400 na chamada do enviaForm

Estou rodando local, quando submeto o form ele retorna:

errors: [{codes: ["Email.autorForm.email", "Email.email", "Email.java.lang.String", "Email"],…}] exception: "org.springframework.web.bind.MethodArgumentNotValidException" message: "Validation failed for object='autorForm'. Error count: 1" path: "/api/autores" status: 400

Segue o código:

enviaForm(evento) {
    evento.preventDefault();
    console.log("dados sendo enviados");

    $.ajax({
        url:'http://localhost:8080/api/autores',
        contentType:'application/json',
        dataType:'json',
        type:'post',
        data: JSON.stringify({nome:'this.state.nome', email:'this.state.email', senha:'this.state.senha'}),
        success: function(resposta) {
          console.log(resposta);
          console.log("enviado com sucesso");
          this.setState({lista:resposta});
        }.bind(this),
        error: function(resposta) {
          console.log("error")
        }
    });
  }

Ja conferi o código várias vezes, provavelmente é algo bobo, mas ta difícil de encontrar.

3 respostas
solução!

Boa noite, Leonardo! Como vai?

Nesse trecho de código que vc mandou, eu percebi que na parte da propriedade data onde vc fez:

data: JSON.stringify({nome:'this.state.nome', email:'this.state.email', senha:'this.state.senha'}),

O correto seria fazer:

data: JSON.stringify({nome: this.state.nome, email: this.state.email, senha: this.state.senha}),

Além disso, vc colocou um .bind(this) no meio do método enviaForm() que na realidade não deveria estar ali!

Pode ser que os erros não sejam só esses. Mas experimente fazer as alterações aí e veja se as coisas funcionam corretamente como vc esperava!

Uma dica que eu te dou é repassar com atenção a aula onde essa funcionalidade de cadastro de autores é implementada e seguir exatamente os passos mostrados lá!

Qualquer coisa, se o erro persistir, mande o código completo da classe do seu componente e os logs de erros também completos que aí eu darei uma olhada melhor pra continuar te ajudando!

Grande abraço e bons estudos, meu aluno!

Era isso mesmo, não tinha nem visto. Está funcionando perfeitamente! Muito obrigado Gabriel!

Abraço

Por nada, Leonardo! Sempre que precisar de alguma ajuda é só mandar aqui no fórum da Alura!

Grande abraço e bons estudos, meu aluno!