3
respostas

Negociações post com erro no console

No post tem erro no console.

post.html:51 Uncaught TypeError: (intermediate value).post is not a function
    at sendPost (post.html:51)
    at HTMLButtonElement.onclick (post.html:27)

essa é a parte do código em html

<body class="container">
    <form class="form">

        <div class="form-group">
            <label for="data">Data</label>
            <input type="date" id="data" class="form-control" required autofocus/>        
        </div>    

        <div class="form-group">
            <label for="quantidade">Quantidade</label>
            <input type="number" min="1" step="1" id="quantidade" class="form-control" value="1" required/>
        </div>

        <div class="form-group">
            <label for="valor">Valor</label>
            <input id="valor" type="number" class="form-control"  min="0.01" step="0.01" value="0.0" required />
        </div>

        <button class="btn btn-primary" type="submit" onclick="sendPost(event)">Enviar dados para servidor</button>
    </form>

    <script src="js/app/services/HttpService.js"></script>

    <script>
        function sendPost(event) {

            event.preventDefault();

            console.log("Enviando post");

            let $ = document.querySelector.bind(document);
            inputData = $('#data');
            inputQuantidade = $('#quantidade');
            inputValor = $('#valor');

            let negociacao = {
                data: inputData.value,
                quantidade: inputQuantidade.value,
                valor: inputValor.value
            };

            new XMLHttpRequest()
                .post('/negociacoes', negociacao)
                .then(() => {
                    inputData.value = '';
                    inputQuantidade.value = 1;
                    inputValor.value = 0.0;
                    inputData.focus();
                    alert('Negociação enviada com sucesso');
                })
                .catch(erro => alert(`Não foi possível enviar a negociação: ${erro}`));
        }

    </script>
</body>
</html>
3 respostas

Fala ai Germano, tudo bem? O problema está no seu new XMLHttpRequest().post, isso porque a XMLHttpRequest não tem essa função, ela funciona de forma diferente.

Dá uma olhada aqui para ver exemplos: https://github.com/mahenrique94/jlib/blob/master/http.js

Eu recomendo você trocar a XMLHttpRequest pela Fetch API.

Espero ter ajudado.

Obrigado, funcionou dessa forma, mas ate entao nao tinha visto Fetch API nas aulas anteriores. apareceu só agora no final desse curso agora a maneira correta.

Boa Germano, sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.