Ich habe die nächste Problemumgehung gefunden. Sie können die Umleitung nach der Verarbeitung der POSTAnforderung durch Bearbeiten des historyObjekts umgehen.
Sie haben also das HTML-Formular:
<form method=POST action='/process.php'>
<input type=submit value=OK>
</form>
Wenn Sie dieses Formular auf Ihrem Server verarbeiten, leiten Sie den Benutzer nicht weiter, /the/result/pageindem Sie den LocationHeader wie folgt einrichten:
$cat process.php
<?php
process POST data here
...
header('Location: /the/result/page');
exit();
?>

Nach der Verarbeitung der POSTDaten rendern Sie klein <script>und das Ergebnis/the/result/page
<?php
process POST data here
render the <script> // see below
render `/the/result/page` // OK
?>
Das <script>solltest du rendern:
<script>
window.onload = function() {
history.replaceState("", "", "/the/result/page");
}
</script>
Das Ergebnis ist:

Wie Sie sehen können, werden die Formulardaten POSTin ein process.phpSkript umgewandelt.
Dieses Skript verarbeitet POSTDaten und rendert /the/result/pagesofort mit:
- keine Umleitung
- Keine erneuten
POSTDaten beim Aktualisieren der Seite (F5)
- Nein,
POSTwenn Sie durch den Browserverlauf zur vorherigen / nächsten Seite navigieren
UPD
Als eine andere Lösung bitte ich Feature - Anfrage die Mozilla FireFox Team Benutzer einrichten , damit NextPageHeader, wie funktioniertLocation Header und Makepost/redirect/get veraltet Muster.
Zusamenfassend. Wenn der Server Formulardaten POSTerfolgreich verarbeitet, gilt Folgendes:
- Setup-
NextPageHeader anstelle vonLocation
POSTRendern Sie das Ergebnis der Verarbeitung von Formulardaten so, wie es für die GETAnforderung im post/redirect/getMuster gerendert würde
Der Browser wiederum, wenn der NextPageHeader angezeigt wird :
window.locationMit NextPageWert einstellen
- Wenn der Benutzer die Seite aktualisiert, handelt der Browser eine
GETAnfrage aus, NextPageanstatt POSTDaten neu zu formulieren
Ich denke, das wäre exzellent, wenn es implementiert würde, nicht wahr? =)