Encontré la próxima solución. Puede escapar de la redirección después de procesar la POST
solicitud manipulandohistory
objeto.
Entonces tienes el formulario HTML:
<form method=POST action='/process.php'>
<input type=submit value=OK>
</form>
Cuando procesa este formulario en su servidor, en lugar de redirigir al usuario /the/result/page
configurando el Location
encabezado de esta manera:
$cat process.php
<?php
process POST data here
...
header('Location: /the/result/page');
exit();
?>
Después de procesar los POST
datos ed, se vuelve pequeño <script>
y el resultado/the/result/page
<?php
process POST data here
render the <script> // see below
render `/the/result/page` // OK
?>
El <script>
que debes renderizar:
<script>
window.onload = function() {
history.replaceState("", "", "/the/result/page");
}
</script>
El resultado es:
como puede ver, los datos del formulario se POST
editan al process.php
script.
Este script procesa POST
datos y renderiza /the/result/page
a la vez con:
- sin redireccionamiento
- no hay
POST
datos cuando actualiza la página (F5)
- no re
POST
cuando navega a la página anterior / siguiente a través del historial del navegador
UPD
Como otra solución, solicito que la función solicite al equipo de Mozilla FireFox que permita a los usuarios configurar el NextPage
encabezado que funcionará como Location
encabezado y crearápost/redirect/get
obsoleto el patrón.
En breve. Cuando el servidor procesa los POST
datos de forma satisfactoriamente:
- Configurar
NextPage
encabezado en lugar deLocation
- Representa el resultado del procesamiento de los
POST
datos del formulario tal como se representaría para la GET
solicitud en el post/redirect/get
patrón
El navegador a su vez cuando ve el NextPage
encabezado:
- Ajustar
window.location
conNextPage
valor
- Cuando el usuario actualice la página, el navegador negociará la
GET
solicitud en NextPage
lugar de volver a POST
formar los datos.
Creo que esto sería excelente si se implementa, ¿no? =)