1

次の方法でアクション クラスのメソッドを呼び出すために、JS メソッドから ajax 呼び出しを行っています。

$.getJSON("treeDemo_!getRootNode?appId=" + applicationId, function () {
    }).success(function (e) {
    }).error(function (jqXHR, textStatus, errorThrown) {
        alert(textStatus);
    }).complete(function () {
    });

私の web.xml のセッション構成は次のようになります

<session-config>
    <session-timeout>1</session-timeout>
</session-config>

セッションが 1 分後に期限切れになると、ajax 呼び出しは (アクション メソッドを呼び出さずに) エラーを返します。エラーは言う

textStatus = parsererror
errorThrown = SyntaxError: JSON.parse: unexpected character

しかし、これは一般的なエラーのようです。セッション タイムアウト例外をキャッチし、この例外が発生した場合に備えてユーザーを login.jsp ページにリダイレクトしたいと考えています。

私もこれで対処してみました。しかし、それは私にはうまくいきませんでした。

どのように解決すればよいか教えてください。

4

1 に答える 1

1

「セッションタイムアウト例外」はありません。

Ajax 呼び出しは JSON を返すことを期待しています。セッション タイムアウトがある場合、アプリでは何も JSON を返しません。リンクのようにフィルターまたはインターセプターを使用し、セッションのタイムアウトを確認し、通常のリクエストの場合は通常どおり処理しますが、Ajax リクエストの場合は HTTP エラー コードを返します。

JavaScript コールバックでこのエラー コードを処理します。

于 2013-02-05T13:34:28.407 に答える