私は、私たちのAPIを呼び出すexecuteGetRequestという関数を持っています(他のHTTPメソッドのバリアントあり)。これは静的であり、基本クラスに配置されています。これはコントローラから呼び出されます。 APIが401のHTTPステータスコードを返す場合、executeGetRequestは古いセッションデータを消去するために、ユーザーを "フロントエンド" Yii2プロジェクトのログアウトページにリダイレクトする必要があります。Yii2:コントローラー以外の静的コンテキストからリダイレクトを実行
私の同僚と私は、リダイレクトに複数の方法を試みました。 $ this-> redirect()は静的コンテキストの$ thisオブジェクトが存在しないため動作しません。
return Yii::$app->getResponse()->redirect(Url::to('login/user-logout'));
は機能しません。
Yii::$app->getResponse()->redirect(Url::to('login/user-logout'))->send();
return;
は機能しません。 Url :: to()の有無にかかわらずこれらを試しました。
私は401応答をチェックした条件でYii :: trace()を得ることができました。それはうまく動作します。したがって、問題は401ステータスコードの検出ではなく、リダイレクトです。それはあなたのケースで働いていない理由を