多くの Ajax GET 呼び出しを使用する JRuby on Rails アプリケーションがあります。結果は HTML ページに挿入されます。セッションがタイムアウトした場合、結果の html はログイン ページです。このログイン ページは、現在の HTML ページに挿入されます。代わりに、ログインページへのリダイレクトが発生するはずです...
この問題は一般的にどのように取り組まれていますか?
多くの Ajax GET 呼び出しを使用する JRuby on Rails アプリケーションがあります。結果は HTML ページに挿入されます。セッションがタイムアウトした場合、結果の html はログイン ページです。このログイン ページは、現在の HTML ページに挿入されます。代わりに、ログインページへのリダイレクトが発生するはずです...
この問題は一般的にどのように取り組まれていますか?
ブラウザはそれを隠しているため、302 をキャッチすることはできません - あなたの ajax リクエストは最終的なリクエストを見るだけです。
これが問題になった場合、私は通常ログイン コードを変更して、ログインしていないユーザーが制限されたページにアクセスしようとしたときに、リクエストが ajax リクエストである場合に特別なステータス コード (通常は 4xx コード) をレンダリングするようにします。ajax リクエスト ハンドラーでそのステータス コードを確認し (jour ajax ライブラリによっては、通常、グローバル ハンドラーを設定できます)、それが表示された場合は、ユーザーをログイン ページにリダイレクトします。