POST データを再送信せずにページを更新して再読み込みする方法は?
location.reload()
Chrome(開発中のテスト環境)でまったく問題なく動作することを試しました。しかし、IE と Firefox は JS で無限ループに入り、大量のジャンク/重複データを再投稿しました。
注: ただし、ページを更新してフォームの内容をすべてクリアしたいだけです。データが正常に追加されたという警告メッセージを表示する、送信後の起動スクリプトも登録しています。
ヘルプ!
POST データを再送信せずにページを更新して再読み込みする方法は?
location.reload()
Chrome(開発中のテスト環境)でまったく問題なく動作することを試しました。しかし、IE と Firefox は JS で無限ループに入り、大量のジャンク/重複データを再投稿しました。
注: ただし、ページを更新してフォームの内容をすべてクリアしたいだけです。データが正常に追加されたという警告メッセージを表示する、送信後の起動スクリプトも登録しています。
ヘルプ!
これを試して:
window.location.href = window.location.href;
location.href = location.href + '?' + Math.random();
これはうまくいくはずです。
コードに次を追加します。
Response.Redirect(Request.RawUrl)
フォームをクリアしたいだけの場合は、次のようにしてください。
<input type="reset" value="Clear Fields">
次を使用して行うこともできます。
document.getElementById('<%=form1.ClientID%>').reset();
他に何かする必要がない限り、ページをリロードするのはもったいないようです。
以下を追加します。
Server.Transfer(Request.RawUrl);
私もリロードを試みましたが、reload(true) は両方とも、私が望んでいたことを正確に行っていません。
「get」でページをリクエストしたかったので、Location オブジェクトには(リロード以外の)他のメソッドがあることがわかりました。
location.assign(window.location);
これまでのところ、私がやりたいことをしているようです。値を再度送信せずに同じページをリロードしてください。私の使用例は、セッションの有効期限が切れたときのサーバーへの ajax 呼び出しです。セッションが失われたというエラー メッセージが表示された後、ページをリロードします。