私の Webapp (で実行されているlocalhost/myApp/
) では、次のような ajax 呼び出しがあります。
$.ajax({
type: "GET",
url: "http://localhost:8080/my.module/Login/login?user=abc&password=123",
xhrFields: {
withCredentials: true,
},
success: onResult,
error: onError,
});
サーバーにログインします。ログインが成功し、応答に次のヘッダーも含まれている場合、サーバーはブール値で応答します。
Set-Cookie: JSESSIONID=167C57FA1E3529433938E744F7C4AC52; Path=/my.module
以前に設定された xhrField "withCredentials: true" を使用すると、ブラウザーは自動的に Cookie を処理し、後続のすべての要求に Cookie ヘッダーを追加します。
Cookie: JSESSIONID=167C57FA1E3529433938E744F7C4AC52
これは完全に正常に機能します。しかし、サーバーにバグがあるため、ログアウト インターフェイスを呼び出すときにセッションが削除されず、セッションを閉じることができない (そしてサーバーにアクセスできない) という問題があります。適切にログアウトするには、クライアントのセッション Cookie を削除して、サーバーから新しい Cookie を取得する必要があります。しかし、Cookie にアクセスしたり削除したりする方法が見つかりませんdocument.cookie
。webapp で変数が空です。また、とからdocument.cookie
変数を読み取ろうとしましたが、常に空です。私が試したもう1つのことは、Cookieを上書きすることでしたlocalhost/myApp/my.module/
localhost/my.module/
document.cookie = "JSESSIONID=ABC; Path=/my.module";
ただし、サーバー要求には以前の Cookie が残っています。どうすれば削除できるか教えてもらえますか?
この解決策がハックであることはわかっていますが、それが私が探しているものです。なぜなら、サーバー プログラマーはバグを時間内に修正できず、そのようなハックをクライアントに実装するように私に依頼したからです。