1

jQuery のロード機能は便利ですが、セッション タイムアウトはどのように処理しますか? これを使用して新しいコンテンツを div に追加しましたが、セッションがタイムアウトすると、ページ全体ではなくその div にログイン画面が表示されます。

これを処理する方法はありますか?

JSPページで使用しています。

すべてをjsp:includeページに置き換えて、ページを調整する必要があるたびにページを更新する必要がありますか、またはjQueryロード機能でこれを行い、セッションタイムアウトを適切に処理する方法はありますか?

呼び出しの前にセッションを検証しようとしましたが、サーバーへの呼び出しがないため、ロード要求が有効期限が切れていることを検出するまで、セッションは有効に見えます。そのため、セッションは現在のページでは null ではありませんが、他のページを取得するためにロードが実行されると、代わりにログイン ページが取得されます。

4

2 に答える 2

1

あなたのログインページはリダイレクトだと思います。次に、completeコールバック (3 番目のパラメーター、docを参照) を使用して応答を確認できます。

于 2013-03-07T08:37:10.903 に答える
0

私は同じ問題に遭遇し、それを解決しました。だから私は私自身の答えを共有するつもりです。

最初は応答コードが 301 かどうかを確認したかったのですが、コールバックで 301 リダイレクトをキャッチできません。completeリダイレクトの結果である 200 をスローするだけです。

そのため、代わりに を読んで、xhr.responseTextで始まるかどうかを確認し"<html>"ます。そうである場合、モーダルコンテンツではなく、リダイレクトされたログインページが応答に含まれていることを意味するためです。

 $(".modal-wrapper").load("/modal" + e, function(response, status, xhr){
      if (xhr.responseText.trim().startsWith("<html>")) {
          console.log("redirect to login page");
          window.location.href = "/";
      }
  });

本当は、代わりwindow.location.href = "/";にやりたかったのはdocument.write(xhr.responseText);、不要な要求ができないようにすることです。しかし、いくつかのUIの問題により、これを達成できませんでした;P

于 2018-05-24T02:49:24.827 に答える