私は現在、HTTP 投稿フォームとヒストリー プッシュステートで少し問題に直面しています。
ユーザーが POST フォームを送信し、example.com/page-1
このページ内のリンクをクリックするexample.com/page-2
と、history.pushstate にリダイレクトされます。JS スクリプトは、現在の URL を変更し、古い URL を履歴にプッシュしてから、新しいコンテンツを表示するだけです。これは私にとっては完璧に機能します。
問題: ユーザーがオンにexample.com/page-2
なり、手動でページを更新すると(ctrl+r または更新ボタン)、Chrome はユーザーにフォームを再度送信するように求めます。しかし、フォームは実際には入っexample.com/page-1
ていたので、この「新しい」ページで再度質問する理由はありません。
ブラウザからの再投稿プロンプトを防ぐために、popstate の変更時に JavaScript で以前に送信されたすべてのデータをクリアする方法はありますか? または、履歴の状態で何か不足していますか? それとも、現在ブラウザでまだうまく実装されていないものですか?
他のブラウザーでは pushstate を実装していないため、chrome でのみテストしました。