0

ログインページとダッシュボードページがあります。

ログインプロセスが完了するとすぐに、ダッシュボードページ(ナビゲーションルールを使用)が表示されます。

  <navigation-rule>
        <from-view-id>/login.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>dashboard</from-outcome>
            <to-view-id>/viewp/dashboard.xhtml</to-view-id>
        </navigation-case>
    </navigation-rule>

すべてのリクエストにフィルターマッピングがあります。

これが私のシナリオです。ダッシュボードページにクライアント側のポーラーがあります。サーバーが再起動すると、ポーラーはフィルターによって解釈される要求を送信します。

フィルターの中に私は次のようなロジックを持っています

If(url.contains("login.xhtml))
{
//dofilter
}else
{
// redirect to login.
}

しかし、どういうわけかこれはリダイレクトされていません。

私が持っている観察の1つは、ダッシュボードページを表示しているにもかかわらず、ログインした後もURLがのようになっていることmydomain/login.xhtmlです。mydomain/login.xhtmlブラウザのURLが機能していないので、動作していないと思いますresponse.redirect("mydomain/login.xhtml")。助言がありますか?

ありがとうございました、

4

1 に答える 1

1

ポーラーはJavaScript/Ajaxによって実行されますよね?サーバーが200ではなく302を返したかどうかをJavaScript/Ajaxでチェックインし、それに応じて処理する必要があります。ブラウザ自体は、返されたJavaScript / Ajax応答に対しては自動的にそれを行いませんが、同期要求に対する応答に対してのみ行います。

window.locationJavaScriptで使用して、「リダイレクト」を実行できます。例えば

if (ajaxResponseStatus == 302) {
    window.location = newURL;
}
于 2012-06-06T23:06:57.407 に答える