Este mensaje de error que un usuario obtiene cuando intenta refrescar o regresar a la página a través de las flechas del historial de navegación realmente nos molesta. Es entendible, ya que el navegador a menudo nos dice “¡Esto podría significar que pagarás por el bien dos veces!”.
La primera forma de arreglar esto es enviando todo el contenido del formulario a través de una petición AJAX. Pero si el usuario tiene javascript deshabilitado entonces necesitarás ir a mi siguiente recomendación.
El patrón POST/REQUEST/GET (PRG) elimina esa posibilidad al no permitir nunca al usuario llegar a la página en la cual los datos POST han sido enviados. Poniéndolo más simple, donde sea que quieras datos POST, tómalos y luego redireccíonalo inmediatamente.
Realizas las redirección usando HTTP1.1 303, y aunque eso suena
un poco raro es para eso que fue planeado ese estado.
En ese ejemplo usé una SESSION para poder dar un feedback o
retroalimentacion. Sesiones son prácticas cuando no quieres poner
datos sensibles en la URL.
PRG es particularmente importante estos dias con la popularidad que
esta alcanzando las aplicaciones javascript de una página.