2012-03-30 7 views
3

私たちはJQuery AJAXを使ってログインしています。ログインサービスは、ログインしたユーザのGET、または(ログインに失敗した場合は)常に許可されていないHTTPステータスを返すRESTエンドポイントであるHTTP 302を発行します。 302と同時にJSESSIONIDにセットクッキーを発行します。クッキーはHttpOnlyクッキーです。jQueryリダイレクトとHttpOnlyクッキー

ストレートHTTPフォームの投稿を使用すると、リダイレクトがうまく動作し、すべてが設定されます。 JQuery AJAXを使用すると、2回目の呼び出しでCookieが送信されないため、GET/user/{userId}へのリダイレクトは機能しません。この失敗した第2のコールは、認証失敗したエンドポイントへの別のリダイレクトを引き起こすはずですが、実際には失敗します。それを調べると、2回目の呼び出しで が「キャンセル」されることがわかります。それはどういう意味ですか、最初に問題を解決するにはどうすればいいですか?

+0

同様の問題は、それがここではどのように解決された:

あなたはここでそれについての詳細を学ぶことができhttp://stackoverflow.com/questions/199099/how-to-リダイレクト要求後jquery-ajax-call – jfriend00

答えて

1

同じ起源のポリシーに反する可能性があります。ログインしているドメインは、ページ/スクリプトファイルが提供されたものと同じですか?

そうでない場合は、CORS(クロスオリジンリソース共有)を使用してCookieをスティックする必要があります。

http://www.html5rocks.com/en/tutorials/cors/

https://developer.mozilla.org/en-US/docs/HTTP_access_control

+0

ここで古い質問を整理するだけです。この答えは完全な答えではありませんが、それは十分に近いです。基本的に、私がする必要があったのは、JSessionIDの完全な説明を確認することでした。遊びには2つのものがあります。 1)は、ログインのドメインがHTTPSであり、GETのドメインがHTTPであるため、Darrenが述べたようにCORSの問題が発生していました。 2)は、クッキーにパス(/ auth vs/rest)の問題があったため、CORSフィックスも動作しなくなりました。パスの問題を修正すると、最終的に問題が解決しました。 –

関連する問題