0 votos

Hola, tengo un formulario y, por medio de ajax (jquery) envio los datos a un servlet (java). El formulario tiene 5 campos. Si lleno los 5 campos ajax se va por la opción failure pero, si solo lleno 4 campos (sin importar cuales sean) me envia los datos al servlet sin problemas.

Alguna idea de que pasa?

 Usé, en parte, este tutorial: http://jarroba.com/ajax-con-jsp-y-servelts/

__________________ACTUALIZACIÓN

El problema es que, al ser un formulario, cuando hago clic en un boton, el formulario es enviado a algún lugar y esto causa que la función javascript (la que usa ajax) no se ejecute bien (Todos los campos tienen la opción "required", por eso, cuando no lleno todos los campos, el formulario no se envía automaticamente y de ahí que se ejecute el script)

Ahora, algúna idea de como solucionar esto?

__________________RESPUESTA

Hola, lo solucioné cambiando de <button type="Submit"....> a <input type="button"...>

cerrada con la nota: Ya la solucioné
por en JavaScript
cerrada por

1 Respuesta

0 votos

Podrían ser múltiples cosas. Te recomiendo que revises:

  • Tipo de dato incorrecto: por ejemplo, en el Servlet pides un int y le llega un String
  • Nombre de parámetro correcto: que el parámetro que espera al Servlet tenga el mismo nombre que el que le llega
  • No caben los datos en el GET: si estás utilizando GET lo mejor que puedes hacer para enviar datos es enviarlos por POST que permite longitud de datos ilimitados
  • Cabecera incorrecta: por ejemplo, estás pasando un JSON y no estás mandando las cabeceras como: contentType: "application/json"
por
Hola

Mil gracias por responder :)

El problema es que, al ser un formulario, cuando hago clic en un boton, el formulario es enviado a algún lugar y esto causa que la función javascript (la que usa ajax) no se ejecute bien (Todos los campos tienen la opción "required", por eso, cuando no lleno todos los campos, el formulario no se envía automaticamente y de ahí que se ejecute el script)

Ahora, algúna idea de como solucionar esto?
Entonces tendrás que comprobar donde está fallando el Ajax, te sugiero que mires la consola en que parte del código está dando el error exactamente (para poder ayudarte más tendría que ver el código); además de comprobar que respuesta recibes del servidor (puede que tengas un problema en la comunicación con el Servidor, posiblemente por cabeceras o Cross-Origin suele ser lo más habitual).
Hola, mil gracias por responder, lo solucioné cambiando de <button type="Submit"....> a <input type="button"...>

Por otro lado, a que consola te refieres? Estoy usando netbeans, la consola me muestra los errores de java (backend) pero no los de javascript (ajax, frontend) o hay forma de activar esa opción?
Me alegro que lo solucionaras, sienta bien cuando el código funciona :)

Me refería a la consola de desarrollo del navegador para FrontEnd; aunque también puedes mirarlo en la consola del Servidor (que si ejecutas el Servidor desde Netbeans será la del mismo).