2009-07-15 36 views
2

我有一個問題,我有一個框架組成的一個父框架加載從一個域和一個來自不同域的包含框架。包含的域也在框架集加載之前設置cookie。但是,由於大多數瀏覽器都實施了「相同原則」策略,如果包含框架不是來自與父域相同的域,則它將不會傳遞Cookie。解決相同的來源策略問題

不幸的是,我無法控制父框架(或其URL),並且包含框架的URL是有效的靜態。因此,將信息傳遞到包含的網站的唯一方法是通過Cookie。

我想出的唯一解決方案是重新加載父框架中包含的域,但是這首先否定了使用框架的一些價值。

有沒有人有更好的解決這個問題?

回答

1

有很多方法可以做到這一點。這裏有兩個,我用:

  1. 在使用 標籤的父母和孩子負載 都來自一個共同的源腳本。加載 腳本這種方式不具有相同來源 問題,以及數據它們返回 成爲文檔對象 的一部分,可以通過文件加載其他腳本 互動(這是 方式AJAST作品) 。
  2. 在父域中創建一個反向代理,並通過此代理加載幀。對於瀏覽器來說,它們似乎都是來自同一個域。缺點是這會影響緩存,並繞過您可能正在使用的任何內容交付網絡(例如,Akamai)。
+0

不幸的是,我無法控制父域只有子域。 – 2009-07-15 13:35:36

1

還有一個想法是,你可以使用跨域消息API將消息從一幀發送到另一幀。這裏是一個example!閱讀更多關於this

+0

很好的示例的瀏覽器。應該試一試 – Kalanamith 2012-11-14 06:45:39