私は現在、HTTPポストフォームと履歴pushstateに少し問題があります。history.pushstateとHTTP POSTフォームの再投稿
ユーザーがexample.com/page-1
にPOSTフォームを送信し、このページ内のリンクをクリックすると、history.pushstateを使用してexample.com/page-2
にリダイレクトされます。 JSスクリプトは現在のURLを変更し、古いものを履歴にプッシュし、新しいコンテンツを表示します。これは私にとって完璧に機能します。
問題:ユーザがexample.com/page-2
と上で手動でページ(CTRL + Rまたはリフレッシュボタン)を更新した後、のchrome再度フォームを送信するようにユーザに促します。フォームは実際にexample.com/page-1
にあり、この「新しい」ページで再度尋ねる理由はありません。
ポストステートの変更時にjavascriptで以前に送信されたすべてのデータを消去して、ブラウザからの再送信プロンプトを防ぐ方法はありますか?あるいは私の歴史国家で何かを逃していますか?それとも、ブラウザでまだ実装されていないものですか?
私は他のブラウザでpushstateを実装していないので、クロムでテストしました。
こんにちは、replaceStateで同じ問題が発生しましたが、問題を解決するAjax経由でフォームを送信しています。私は、javascript history.pushstateとajax経由でフォームを送信せずにreplacestateを使うことは、jquery、mootoolsなどで行うのはかなり簡単なので、やってはいけないと思います。 – pafounet