2012-04-27 8 views
2

私は現在、セッションを介してクライアントを認識するRESTfulウェブサービスを持っています。クロスドメインAJAX/Javascript - 人為的にsessionidを使用

私はajax/javascriptを使用してRESTful Webサービスのコンテンツにアクセスするクライアントを持っています。私は、ヘッダーでのリクエストに応答することでこれを可能にします:Access-Control-Allow-OriginAccess-Control-Allow-CredentialsAccess-Control-Allow-Methods。クッキーがドメインにまたがって使用することができないよう

ただし、クライアントは、コンテンツの各要求にアクセスすることができますが、別のセッションとみなされています。

私は私がセッションを使用してのファサードを与えるために、クライアント側の周りの仕事を好むだろう、クライアントのこのスタイルのために特別に対応するために自分のサーバーのコードを変更する必要はありません。

私はセッションを通して何も保存したくないので、むしろjsessionidをクライアント識別子として使用します。私は人工的にURLに&jsessionid=を挿入できると仮定しました。セッションを正確に追跡する必要があります。

これが動作するようには思えない - 誰かがそれは同じセッションIDを使用しているかのように私は私のクライアントの行為を行うことができますどのように助言することができますか?背景については

+0

@ Graeme:喜んで助けました!私はそれを答えに移しました。 –

答えて

2

を...私は人工的

jsessionidは、クエリ文字列パラメータではありません... URLに= & JSESSIONIDを注入可能性が想定さ。 &jsessionid=...ではなく、;jsessionid=...(URLには&の前に)を人為的に追加することをお勧めします。

+0

クッキー内のjsessionid値がURL内のjsessionid値よりも優先されることに注意してください。 – Graeme

0

...私は、クロスドメイン通信を可能にし、コンテンツ管理のためのページ上の節約をシミュレートしますが、実際には安全なサーバーへのiframe経由のクロスドメインを話しているkitgui.comと呼ばれる製品を作りました。

サーバーコードを変更する必要はありません。 iframe + postMessageは、IE8以下のサポートが必要ないと仮定して使用できます。他のすべての最新のブラウザーがそれをサポートしています。下位のブラウザにもiframeポーリング手法があります。非SSLの場合でも、セッションIDをクエリ文字列全体に公開する必要はありません。 iframeに話をして、JavaScriptの状態でログインしているかどうかを調べることができます。セッション情報はiframeのドメイン上に残ります。

このリンクはあなたを助けることができる - >http://benalman.com/projects/jquery-postmessage-plugin/

関連する問題