1

JESSIONIDCookieのような幽霊に関するちょっとした謎に苦しんでいます。JESSIONIDを使用して、AJAXベースのサイトの状態変更間のセッションを維持しています。これは、デプロイされたサーバーでは正常に機能しますが、外部XMLベースのサーブレットを使用してローカルホストでサイトを実行している場合は機能しません。

HTTPヘッダーツールを使用して、JSESIDCookieが単に設定されていないことを確認できました。

localhost-> external:ログインを試行します
external-> localhost:XMLを返し、JSESIDを使用してSet-Cookieを修正します
localhost-> external:JSESID Cookieなしで次のリクエストを送信します(ただし、他のCookieは送信されます)。

私はいくつかの異なるコンピューター(およびブラウザー)で試しましたが、結果は同じです。ただし、奇妙なことに、ソリューションはモバイルデバイス(PhoneGap + Android / iOs)で機能します。これに基づいて、私もfile://からサイトを実行しようとしましたが、運がありませんでした。

サーブレットはすでにデプロイされているため(Tomcat 6)、残念ながら、その側で変更できるものはほとんどありませんが、収集できる限り、問題がその側にある可能性はほとんどないようです。このスレッドで提案されているように、私も解決策1を試みました。これにより、cookieという名前のJSESIDが設定されますが、コンテンツは「ぎこちない」ものでいっぱいになります。

function postDataToBean(formId, callbackFunc, callbackError)
{
    $.ajaxSetup ({  
        cache: false  
    });

    var_form_data = $("#" + formId).serialize();

    var request = $.ajax({
          url: getAppBackEndURL() + $("#" + formId).attr("action"),  
          type: "POST",
          data: var_form_data,
          dataType: "xml",
          contentType : "application/x-www-form-urlencoded"       
        });

    request.done(callbackFunc);
    request.fail(callbackError);
}
4

2 に答える 2

0

私は同じ問題を抱えていて、数日定期的に解決しようとしていました。検索して読んでも結果が得られませんでした。

次に、iPhoneでサファリ設定を開き、履歴、Cookieデータ、およびWebサイトデータを削除しました。そして驚いたことに、今はすべて問題ありません。幸運を

于 2012-09-26T16:21:42.553 に答える
0

ドメインの問題であることがわかりました。デスクトップ ブラウザーは、Cookie を設定するドメインがそれを要求するドメインとまったく同じである場合にのみ、JSES Cookie を受け入れます。奇妙なことに、これは Android ブラウザーや Safari などのモバイル ブラウザーには当てはまりません。

于 2012-06-18T09:07:19.510 に答える