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

Erro inverso

No método post está me avisando que o usuário não foi cadastrado, porém quando olho no banco de dados o usuário foi cadastrado, alguém pode me ajudar?

Abaixo o script do meu httpservice um pouco modificado, mas seguinte as mesmas orientações do curso

function post(url, dado) {

  return new Promise((resolve, reject) => {

    let xhr = new XMLHttpRequest();
    xhr.open("POST", url, true);
    xhr.setRequestHeader("Content-type", "application/json");
    xhr.onreadystatechange = () => {

      if (xhr.readyState == 4) {

        if (xhr.status == 200) {

          resolve(JSON.parse(xhr.responseText));
        } else {

          reject(xhr.responseText);
        }
      }
    };
    xhr.send(JSON.stringify(dado));
  });

}

Anexo da página de envio



  function enviarPost() {

    console.log("enviado");

    let usuario = {

      nome: N("#nome").value,
      sobrenome: N("#sobrenome").value,
      email: N("#email").value
    };

    post("http://localhost:8080/core-web/rest/usuarios", usuario)
      .then(() => {
        alert("Usuários não enviado: ${erro}!");
      })
      .catch(erro => alert(`Não foi possível enviar usuario: ${erro}`));
  }
2 respostas
solução!

Fala Francis, tudo bom?

Nos testes que eu vi, o retorno no xhr.status foi 201, o seu código só validava o 200, por isso mesmo quando fazia a inserção cai no erro pois batia no else que contem o reject.

Uma dica seria você usar uma expressão regular que valide se o retorno é um 200 de qualquer tipo (pois variações de duzentos significam que a inserção foi feita corretamente)

/^2.*$/.test('402') // return false
/^2.*$/.test('202') // return true

Obrigado Mario, vou testar aqui