7

私のプロジェクトでは、以下の Javascript コード history.back(); を使用しています。前のページに戻るため (ウィンドウの戻る矢印のように)。この機能は IE と Firefox では正常に動作しますが、Google クロームでは動作しませんか?

<input type="button" value="Go back" onclick="history.go(-1); return false" />

以下のエラーが表示されます

フォームの再提出を確認

この Web ページを正しく表示するには、以前に入力したデータが必要です。このデータを再度送信することはできますが、送信すると、このページで以前に実行したアクションが繰り返されます。Reload を押すと、そのデータが再送信され、このページが表示されます。

グーグルで検索しましたが、誰もが history.go(-1); return false; を提案しています。しかし、それも機能しません。history.back() も試しましたが、それも役に立ちません

4

3 に答える 3

6

前のページは POST リクエストの後に表示されました (通常はフォームの送信時に発生します)。つまり、前のページを表示するには、POST リクエストで送信されたフォーム データを再度送信する必要があります。お使いのJavascriptとは関係なくhistory.go(-1)、ブラウザの戻るボタンを押したときにも発生します。

Post Redirect Getパターンを使用して、この問題を回避できます。

代わりに、フォームで GET を使用することもできます。

<form action="..." method="GET">

ただし、サーバーにデータが追加されるフォームにはこれを使用しないでください。そうしないと、ユーザーが戻るボタンを押してこのページに戻るたびに送信されます。参照:いつ GET または POST メソッドを使用する必要がありますか?

于 2013-06-20T09:07:58.253 に答える
-1

サーバーに嫌がらせをするのではなく、クライアント側のコードを使用したいと思います
。これを試してみたところ、すべてのブラウザーで機能しました。

<button onclick="javascript:window.history.back()">Back</button>  

EDITまたは、 Webキャッシュ
を 使用して最後のページを保存し、そのページに簡単にリダイレクトできます..

于 2013-06-20T09:16:28.673 に答える