2012-05-31 21 views
5

Mi aplicación desactiva el almacenamiento en caché en el navegador a través de los encabezados de las respuestas y luego usa el patrón Post-Redirect-Get para habilitar el botón Atrás para "volver a obtener" la página actual.
Sin embargo al volver a probar esto ahora con Firefox 12 e IE 8 no estoy viendo los resultados que esperaba (o que había visto antes con IE 6).Comportamiento del botón Atrás después de redireccionar-obtener

Al seleccionar el botón Atrás puedo ver que el navegador está intentando realizar la solicitud original (la publicación), no la solicitud redirigida (la obtención). Cuando miro a las peticiones de la ficha red de Firebug veo lo siguiente:

Post-Redirect-Get

Parece que el navegador está tratando el mensaje y solicitar la misma petición y por lo tanto la selección del botón de retroceso es volver a presentar el post:

Result of Back Button

estoy usando JSF, pero creo que esto es un problema del navegador. ¿Alguien sabe por qué el navegador no está realizando una obtención de la página redirigida?

Respuesta

4

Funciona bien. El botón Atrás vuelve a ejecutar la solicitud antes de "POST cuentaDetalles.xhtml", que no aparece en la primera captura de pantalla, pero según la segunda captura de pantalla parece (y lógicamente) un "GET accountDetails.xhtml". Aparentemente está en el frijol asociado con esa vista o en algún filtro haciendo algunas comprobaciones y redirigiendo a "registrationWelcome.xhtml". El "POST accountDetails.xhtml" en la primera captura de pantalla es la actual solicitud que se ha redirigido a "reviewInfo.xhtml".

El botón Atrás no vuelve a ejecutar la redirección. Es tu propio código que lo hizo. El botón Atrás tampoco vuelve a ejecutar la solicitud POST, que se confirma en la segunda captura de pantalla.

+0

Gracias BalusC, tiene razón, la solicitud que precede al "POST accountDetails.xhtml" es un "Get accountDetails.xhtml". Para aclarar mi opinión, está diciendo que el botón Atrás considera que "POST accountDetails.xhtml -> GET reviewInfo.xhtml" es la misma solicitud (y la solicitud actual) y, por lo tanto, se ejecuta la solicitud anterior "GET accountDetails.xhtml". por el botón Atrás? – Paul

+1

El botón Atrás volverá a ejecutar 'GET reviewInfo.xhtml' en lugar de' POST accountDetails.xhtml' cuando se presione el botón Atrás en la página siguiente * después * de que navegaste fuera de 'reviewInfo.xhtml'. El botón Atrás realmente no vuelve a ejecutar la solicitud actual. El botón de actualización hace eso. Sin el PRG, el botón de actualización por cierto habría vuelto a ejecutar el POST. – BalusC

+0

¿Quiso decir "Sin el PRG, el botón ** atrás ** por cierto habrá vuelto a ejecutar el POST"? – Paul

Cuestiones relacionadas