Saya menemukan solusi berikutnya. Anda dapat menghindari pengalihan setelah memproses POSTpermintaan dengan memanipulasihistory objek.
Jadi, Anda memiliki formulir HTML:
<form method=POST action='/process.php'>
<input type=submit value=OK>
</form>
Saat Anda memproses formulir ini di server Anda, alih-alih mengarahkan pengguna /the/result/pagedengan mengatur Locationtajuk seperti ini:
$cat process.php
<?php
process POST data here
...
header('Location: /the/result/page');
exit();
?>

Setelah mengolah POSTdata ed Anda membuat kecil <script>dan hasilnya/the/result/page
<?php
process POST data here
render the <script> // see below
render `/the/result/page` // OK
?>
The <script>Anda harus membuat:
<script>
window.onload = function() {
history.replaceState("", "", "/the/result/page");
}
</script>
Hasilnya adalah:

karena Anda dapat melihat formulir data POSTdiedarkan ke process.phpskrip.
Script ini memproses POSTdata dan rendering /the/result/pagesekaligus dengan:
- tidak ada pengalihan
- tidak ada
POSTdata saat Anda me-refresh halaman (F5)
- no re
POSTketika Anda menavigasi ke halaman sebelumnya / berikutnya melalui riwayat browser
UPD
Sebagai solusi lain saya meminta fitur meminta tim Mozilla FireFox untuk memungkinkan pengguna untuk mengatur NextPageheader yang akan berfungsi sepertiLocation tajuk dan pembuatanpost/redirect/get pola usang.
Pendeknya. Ketika server memproses POSTdata dengan sukses, itu:
- Atur
NextPagetajuk alih-alihLocation
- Berikan hasil pemrosesan
POSTdata formulir karena akan membuat GETpermintaan dalam post/redirect/getpola
Browser pada gilirannya ketika melihat NextPagetajuk:
- Menyesuaikan
window.location dengan NextPagenilai
- Saat pengguna me-refresh halaman, browser akan menegosiasikan
GETpermintaan NextPagealih-alih kembaliPOST membentuk data
Saya pikir ini akan sangat baik jika diimplementasikan, bukan? =)