2013-01-15 51 views
0

我有一個帶有iframe的jQuery UI對話框。我在iframe中加載了另一個頁面,該頁面與父代不在同一個域中。這些頁面是兩個不同的系統,即System1(父級)和System2(iframe中的子級)。由於負載平衡,在iframe中,在不同的域上關閉父iframe窗口(jQuery UI對話框)

我想要做的就是在調用JS/jQuery的iframed頁面上添加一個按鈕,以關閉父頁面上的acctual對話框窗口。

喜歡的東西,他們在這裏做的:Close jQuery UI Dialog from Iframe

問題是,這隻能在這兩個網頁位於同一個域,由於Same origin policy

這是我目前的按鈕,當系統都安裝在其上工作正常同一個域:

<input type="submit" onclick="$('#myDialog', window.parent.document).hide();" value="X" /> 

網站/系統實際上可能是在同一臺服務器和域上,但我使用負載均衡器3個不同的服務器之間來回移動流量。 所以有兩個系統,每個系統在三臺服務器上運行。在下面,端口對應於不同的系統(91 = System1,92 = System2)。

I.e.

這些系統負載轉至0123平衡和http://System2.myHost.com,負載平衡器決定將用戶發送給哪個服務器。

的問題是:當用戶進入http://System1.myHost.com(其中例如實際上是在Server1)和jQuery/IFRAME試圖加載匹配的系統2點(在這種情況下也Server1上),使用Javascript認爲http://System1.myHost.com(其實際上是http://Server1.myHost.com:91)和http://Server1.myHost.com:92在兩個不同的域上。

不知怎的,我需要欺騙的Javascript認爲負載均衡器的地址是一樣的實際服務器的地址,但我不知道該怎麼....

如何解決這個任何想法? =)

回答

0

如果你可以這樣做,那麼你就不能「欺騙」JavaScript來忽略相同的原始策略。

負載均衡應該對最終用戶透明。您應該考慮在負載平衡服務器前使用諸如Velocity或Memcached的前端緩存系統。