【发布时间】:2016-12-14 17:40:03
【问题描述】:
我有一个调用我们的 API 的函数,称为 executeGetRequest(带有其他 HTTP 方法的变体)。它是静态的并且位于基类中。它是从控制器调用的。如果 API 返回 401 HTTP 状态代码,executeGetRequest 应该将用户重定向到“前端”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状态码的检测,而是重定向。
【问题讨论】: