私はJ2EE/JSFベースのWebアプリケーションを持っています。 フォーム入力、テキスト表示、カスタムサーブレットデータソースを持つGoogle Visualization APIを介してレンダリングされた視覚化で構成されています。どのようにしてSafariにCookieに保存されたセッションIDを使用させることができますか?
このページは、私が部分的に部分的に制御できるページの<iframe/>
にレンダリングされています。
Chrome、Firefoxでは、アプリケーションはうまくいきます。 JSFが生成したセッションCookieを受け入れ、セッションIDをリクエストごとにサーバーに返します。 IEでは、ちょっと手を加えなければなりませんでしたが、すべての点でうまくいきました。
しかし、Safari(5.1.2/Windows XP)では、セッションIDが非標準のURLパラメータ(;jsessionid=...
)として送信されます。結果として、サーブレットデータソースへのクエリにはセッションIDは含まれず、データソースへのすべての要求に対して新しいセッションが作成されます。
これは、視覚化が初期状態で止まってしまいます。
私はブラウザの別のJavaScriptエンジンで原因を疑うが、その疑いはほとんどない。
私は何とかSafariにすべてのリクエストにセッションIDを追加させることができますか?さらに、すべてのリクエストにクッキーを使用することができますか?
更新: Googleの「クエリ」オブジェクトによって実行された呼び出しにセッションIDを追加しようとしましたが、失敗しました。この
new google.visualization.Query('chartdata?randomBitToBypassCaching='+random+";jsessionid="+jsessionid);
のように呼ばれると は、要求されたURLは、そのクエリは、IDの議論の余地を転送する私の試みをレンダリングするURLへtqx
-parameterを追加し
http://localhost:8083/myapp/chartdata?randomBitToBypassCaching=1327312516149;jsessionid=9fdb20a75d30f000c063317997b5&tqx=reqId%3A0
注意。
更新2:URLにjsessionidを転送するには、パラメータの前に追加することをお勧めします。