Я учусь использовать 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](https://i.stack.imgur.com/rsRyH.png)