Как работать с методом FETCH POST, используя JAVA EE? - PullRequest
0 голосов
/ 02 мая 2020

Я учусь использовать FETCH с JAVA, и каждый раз, когда я пытаюсь сделать метод post, он выдает ошибку или данные не достигают сервлета.

Я заставил метод GET работать через учебник YouTube, но они не сделали это с помощью POST. Не могли бы вы помочь мне понять FETCH в JAVA, потому что в PHP это понятно.

HTML

<fieldset>
            <legend>Formulario Cliente</legend>
            <form id="formularioCliente">
                <label>NOMBRE</label>
                <input type="text" name="nombre" id="nombre"/><br>
                <label>EDAD</label>
                <input type="number" name="edad" id="edad"/><br>
                <input type="submit"/>
            </form>
        </fieldset>

JS

 var formulario = document.getElementById("formularioCliente");
        formulario.addEventListener('submit',function (e){
            e.preventDefault();
            console.log('Submit funciona');

            var datos = new FormData(formulario);
            console.log(datos);
            console.log(datos.get('nombre'));
            console.log(datos.get('edad'));

            if(datos != null){
                var url = "ClienteServlet";

                var data = {
                    method: 'POST',
                    body: JSON.stringify(datos),
                    headers: {'Content-Type': 'application/x-www-form-urlencoded'},
                };

                fetch(url,datos)
                        .then(function (response){
                            return response.json();
                })
                .then( data => {
                    console.log(data);
                    Swal.fire(
                        'Good job!',
                        'You clicked the button!',
                        'success'
                    )
                })
                .catch(function(error){
                    console.log(JSON.stringify(error));
                    Swal.fire({
                        icon: 'error',
                        title: 'Oops...',
                        text: 'Something went wrong!',
                      })
                });
            }
        });

SERVLET

String nombre = req.getParameter("nombre");
        String edad = req.getParameter("edad");

        Cliente c = new Cliente(nombre, Integer.parseInt(edad));

        dao = new ClienteDAO();
        boolean funciona = dao.addCliente(c); //Normalmente yo trabajaba hasta aqui, sin utilizar fetch ni ajax.

        Gson gson = new Gson();

        if (funciona) {
            String result = "200";
            JsonObject root = new JsonParser().parse(result).getAsJsonObject();
            boolean success = root.get("success").getAsBoolean();

            resp.getWriter().println(success);
        }

DAO

public boolean addCliente(Cliente cliente){
        try {
            Cliente c = new Cliente();
            c.setName(cliente.getName());
            c.setEdad(cliente.getEdad());

            lista.add(c);
            return true;
        } catch (Exception e) {
            return false;
        }
    }

Это ответы, которые интерфейс дает мне, когда я нажимаю отправить.

enter image description here

...