Estoy trabajando en una aplicación web (J2EE) y me gustaría saber las opciones disponibles para manejar una doble publicación desde el navegador.Cómo evitar que un usuario publique datos varias veces en un sitio web
Las soluciones que he visto y utilizado en el pasado son todos del lado del cliente:
- deshabilitar el botón de enviar tan pronto como el usuario hace clic en él.
- Siga un patrón POST-Redirect-GET para evitar POST cuando el usuario hace clic en el botón Atrás.
- Gestione el evento onSubmit del formulario y realice un seguimiento del estado de envío con JavaScript.
Preferiría implementar una solución del lado del servidor si es posible. ¿Hay mejores enfoques que los que mencioné anteriormente, o son mejores las soluciones del lado del cliente?
¿cómo manejar un usuario pulsa el botón de retroceso (la mayoría de los navegadores no re-petición), el cambio de los datos en la forma y presentación de la misma "billete" de nuevo? – JeremyWeir
No puede evitar que el usuario vuelva a enviar una nueva solicitud con el mismo ticket, pero puede rechazarla en el servidor, con un error de "Solicitud duplicada". – zigdon
Correcto, pero las personas lo hacen a propósito: envíe un formulario, presione atrás porque saben que necesitan corregir algo, envíe el formulario nuevamente. Su uso legítimo del botón Atrás del navegador para editar un registro generaría un error. – JeremyWeir