Znalazłem następne obejście. Możesz uniknąć przekierowania po przetworzeniu POSTżądania, manipulując historyobiektem.
Masz więc formularz HTML:
<form method=POST action='/process.php'>
<input type=submit value=OK>
</form>
Kiedy przetwarzasz ten formularz na swoim serwerze, zamiast przekierowywać użytkownika /the/result/page, ustawiając Locationnagłówek w następujący sposób:
$cat process.php
<?php
process POST data here
...
header('Location: /the/result/page');
exit();
?>

Po przetworzeniu POSTdanych ed renderujesz małe <script>i wynik/the/result/page
<?php
process POST data here
render the <script>
render `/the/result/page`
?>
<script>Należy uczynić:
<script>
window.onload = function() {
history.replaceState("", "", "/the/result/page");
}
</script>
Wynik to:

jak widać dane formularza są POSTedytowane do process.phpskryptu.
Ten skrypt przetwarza POSTdane ed i renderuje /the/result/pagejednocześnie za pomocą:
- brak przekierowania
- brak
POSTdanych po odświeżeniu strony (F5)
- nie więcej,
POSTgdy przechodzisz do poprzedniej / następnej strony w historii przeglądarki
UPD
Innym rozwiązaniem jest poproszenie zespołu Mozilla FireFox o umożliwienie użytkownikom skonfigurowania NextPagenagłówka, który będzie działał jak Locationnagłówek i sprawi, że post/redirect/getwzorzec stanie się przestarzały.
W skrócie. Gdy serwer POSTpomyślnie przetworzy dane formularza, to:
NextPageNagłówek konfiguracji zamiastLocation
- Renderuj wynik przetwarzania
POSTdanych formularza tak, jak byłby renderowany na GETżądanie we post/redirect/getwzorcu
Przeglądarka z kolei, gdy zobaczy NextPagenagłówek:
- Dostosuj za
window.locationpomocą NextPagewartości
- Gdy użytkownik odświeży stronę, przeglądarka będzie negocjować
GETżądanie NextPagezamiast zmieniać POSTdane
Myślę, że byłoby to doskonałe, gdyby zostało wdrożone, prawda? =)