15

ボタンを含む ASP.Net ページがあります。このページには ServerSide Paypal ボタンが含まれています。

プッシュされると、サーバーはバックエンドでさまざまな巧妙なことを行い、応答をフォームとして書き換え、このフォームをペイパルに投稿する JavaScript をいくつか..

これはすべてうまくいきます。

ただし、ユーザーがクリックして戻ることを選択すると、生成された自己投稿フォームが表示され、再び Paypal に転送されます。

生成されたフォームページが履歴に存在しないようにする方法を見つけることができれば、これで問題が解決すると思いました。しかし、これを修正する方法がわかりません。

自分のページを履歴から削除する、または表示されないようにするにはどうすればよいですか?

更新: すべてのおかげで.それらはいくつかの素晴らしい答えです. すべての良いものに賛成票を投じましたが、決定の根拠として Cookie ではなく隠しフィールドを巧妙に使用したため、splattne を使用しました。

4

8 に答える 8

19
window.location.replace(URL);

window.location :

置換 (URL)

現在のドキュメントを指定された URL のドキュメントに置き換えます。assign() メソッドとの違いは、replace() を使用した後、現在のページがセッション履歴に保存されないことです。つまり、ユーザーは [戻る] ボタンを使用してそのページに移動できなくなります。

于 2008-11-14T13:42:01.710 に答える
6

それができるかどうかはわかりません。しかし、フォームの再送信を防ぐ方法を次に示します。

最初は空である非表示の入力をフォームに挿入できます。送信時に、そのフィールドに値を書き込み、このフィールドが空であるかどうかを送信試行ごとに確認してください。

送信時に空でない場合は、フォームが以前に送信されたことがわかり、ユーザーに警告できます。

于 2008-11-14T13:38:42.980 に答える
5

Web アプリケーションとして、ユーザーのブラウザーを完全に制御することはできません。ページを履歴に保存しないようにブラウザーに指示する方法があったとしても、それが機能するかどうかはわかりません。たとえば、賢いユーザーは、オープンソースのブラウザーを微調整して、すべてのページを履歴に保存することができます。

別の角度から問題にアプローチする必要があると思います。たとえば、転送されているのが同じフォームであることを検出し、2 回目はペイパルに送信しないようにすることができます。重要なことは、サーバー側で行うことです。

于 2008-11-14T13:38:29.720 に答える
2

おそらく、フォームを送信する前に Cookie を設定できます。

ページが読み込まれたら、その Cookie の存在を確認します (フォームが既に送信されていることを意味します)。見つかった場合は、フォームを自動的に送信する代わりに、自動的に戻ります ( window.history.back())。

于 2008-11-14T13:40:32.180 に答える
2

PayPal 統合でこれを簡単に実行できるかどうかはわかりませんが、 「Post / Redirect / Get」 パターンを使用してこの問題に対処できます

于 2008-11-14T14:09:59.483 に答える
1

一部の人にとって役立つヒントはこれかもしれません...

window.history.go(-2);

特に、ロード失敗の警告ポップアップが表示された場合。

于 2013-03-29T09:54:31.867 に答える
0

window.referer が 2 回目の呼び出しを回避しようとしている Paypal ページである場合は、ページを送信しないようにプログラムするか、何かを実行したり、別の場所に移動したりすることができます。

于 2017-01-13T18:07:48.667 に答える