2011-10-17 58 views
0

我正嘗試使用它的FileReference類在Flex中進行文件上載。在URL中傳遞Cookie?

這在IE中非常適用,但在FireFox和Chrome中是炸彈。問題在於Flex爲POST啓動了一個新進程,但未將經過認證的用戶cookie與此請求一起傳遞。服務器獲取請求,但嘗試重定向到登錄頁面並... BOOM - 2038錯誤!

I read here that I can pass the cookie information in the URL。我還沒有得到這個工作。這裏是我的問題:

  • 這是所有服務器接受cookie中的cookie的標準功能(我們是Glassfish)?
  • URL的Cookie部分是否以分號(「;」)開頭?
  • 我可以添加多個Cookie值嗎?還可以用分號圈定嗎?

回答

1

您無法在URL中傳遞Cookie。如果服務器支持它,您可以傳遞會話ID。 Java Servlet容器通過使用jsessionid路徑參數支持它(它在Servlet規範中)。只要確保;jsessionid=...恰好位於路徑之後,查詢之前(出於某種原因稱爲「路徑參數」)。

您的問題:

  • servlet容器都支持jsessionid路徑參數。一般來說,您無法通過這種方式通過任何 Cookie。
  • 是的,路徑參數以分號開頭。
  • 不,這些是而不是餅乾。您可以有多個路徑參數(以分號分隔),但它們在服務器端不會顯示爲Cookie。
+0

謝謝,但在我的情況下,我們使用OpenAM,我需要通過OpenAM cookie。我可能被卡住了。 – Vinnie

+0

您應該特別提問關於OpenAM的問題,有人肯定會幫助您。雖然我對此一無所知。 –

+0

順便說一下,在Tomcat中,您可以擁有處理請求的「Valve」 - 它可以接收路徑參數並將其轉換爲請求中的Cookie對象。也許你可以在Glassfish中做類似的事情? (簡單的過濾器不會做,因爲它不能添加cookies。你需要低級別訪問Tomcat/Glasfish內部來添加cookie來請求)。 –