次の回避策を見つけました。POST操作してリクエストを処理した後、リダイレクトをエスケープすることができますhistoryオブジェクトことで、ます。
だからあなたはHTMLフォームを持っています:
<form method=POST action='/process.php'>
<input type=submit value=OK>
</form>
サーバーでこのフォームを処理/the/result/pageすると、次のLocationようにヘッダーを設定してユーザーをリダイレクトする代わりに、
$cat process.php
<?php
process POST data here
...
header('Location: /the/result/page');
exit();
?>

POSTedデータを処理した後、小さくレンダリング<script>し、その結果/the/result/page
<?php
process POST data here
render the <script> // see below
render `/the/result/page` // OK
?>
<script>あなたがレンダリングする必要があります。
<script>
window.onload = function() {
history.replaceState("", "", "/the/result/page");
}
</script>
結果は次のとおりです。

ご覧のとおり、フォームデータはスクリプトにPOST編集されprocess.phpます。
このスクリプトのプロセスは、POSTデータとレンダリングエド/the/result/page一度に持ちます:
- リダイレクトなし
POSTページを更新しても、データはありません(F5)
POSTブラウザーの履歴を介して前/次のページに移動するときは再
UPD
別の解決策として、私は尋ねる機能を要求するとMozilla Firefoxのセットアップへのユーザ許可するようにチームをNextPage同じように動作しますヘッダーLocationヘッダーとメイクをpost/redirect/getパターンを廃止。
要するに。サーバーがフォームPOSTデータを正常に処理すると、次のようになります。
NextPage代わりにヘッダーを設定Location
- リクエストのパターンで
POSTレンダリングするのと同じように、フォームデータの処理結果をレンダリングGETしpost/redirect/getます。
NextPageヘッダーが表示されたブラウザー:
- 調整
window.locationとNextPage値
- ユーザーがページを更新すると、ブラウザはデータを再形成
GETするNextPage代わりにリクエストをネゴシエートしPOSTます
実装すればこれは優れていると思いませんか? =)