2

私のアプリでは

ユーザーはこのようにコミュニティページにアクセスできます
http://example.com/communities?tag=lovely

次に、前のページに戻ろうとすると。私はいつもこのメッセージを受け取ります

Are you sure you want to send a form again

これは、Safari からアクセスした場合にのみ表示されます

どうすればそれを回避できますか。ユーザーが戻るたびにそれを見たくありません。

ルート.rb

resources :communities
4

2 に答える 2

2

この問題を回避する1つの方法は、POST応答が新しいページへのリダイレクト(HTTP 301または303)を返すようにすることです。このリダイレクトは、ブラウザーがGETで要求します。戻ると、POSTではなく、元のフォームページを取得する必要があります(常にそうとは限りません)。

Railsでは、この回り込みは次のようになります。

  1. クライアントのGET/foos/new
  2. サーバーはHTMLを返します<FORM method='POST' action='/foos'>
  3. クライアントPOST /foos(パラメータ付き)
  4. サーバーはID123の新しいFooを作成します
  5. サーバーはリダイレクトを返します/foos/123
  6. クライアントのGET/foos/123
  7. サーバーは新しく作成されたFooのHTMLを返します
于 2013-02-01T19:21:52.153 に答える