Require JS と Orace JET を使用しています
セッションがタイムアウトしたときにサーバーから返される 302 ステータス コードまたはその他のステータス コードを処理するにはどうすればよいですか。
そのような場合にそれをキャッチしてユーザーをログインページにリダイレクトするように構成できますか?
Require JS と Orace JET を使用しています
セッションがタイムアウトしたときにサーバーから返される 302 ステータス コードまたはその他のステータス コードを処理するにはどうすればよいですか。
そのような場合にそれをキャッチしてユーザーをログインページにリダイレクトするように構成できますか?
状態コード 302 は RequireJS からは見えません。これがブラウザの仕組みです。ブラウザは 302 を認識し、次の HTTP リクエストを自動的に実行します。RequireJS は、リダイレクトがあったことを認識しません。
エラーである HTTP ステータス コード (500、400 など) は、モジュールの読み込みに失敗し、onError
呼び出されます。
これが私の解決策です(運が良かったのでうまくいきました)。インスピレーションとして受け取ってください。アプリのセッションが期限切れになると、期待どおり、リクエストは 302 を使用してログイン ページに転送されます。それが発生する可能性のある要求には、主に 2 つのタイプがあります。
#2の場合、302は問題ありません。ユーザーは単にログイン ページにリダイレクトされます。
#1については、ログインページがCORSをサポートしていない別のドメインにあるため、(ある程度の確率で)なんとか検出できます。XMLHttpRequest リクエストは、readyState が 0 で、statusText が "error" で失敗するだけです (ブラウザーが XMLHttpRequest を別のドメインにブロックするため)。すべての REST API 呼び出しに「リスナー」(インターセプター) があり、一部が 0 の readyState と「エラー」の statusText で失敗するたびに、セッションが期限切れになった可能性があります。
もちろん、これは解決策ではなく、どこでも使用できるわけではありません。考えるだけのアイデア:)