内部に iframe を含む jQuery UI ダイアログがあります。親と同じドメインにない iframe 内に別のページを読み込んでいます。ページは、System1 (親) と System2 (iframe 内の子) の 2 つの異なるシステムです。
私がやりたいことは、JS/jQuery を呼び出して親ページの実際のダイアログ ウィンドウを閉じる iframe ページにボタンを追加することです。
彼らがここで行うようなこと: Iframe から jQuery UI ダイアログを閉じる
問題は、同じオリジンポリシーにより、両方のページが同じドメインにある場合にのみ機能することです
これが私の現在のボタンで、両方のシステムが同じドメインにある場合に正常に機能します。
<input type="submit" onclick="$('#myDialog', window.parent.document).hide();" value="X" />
サイト/システムは実際には同じサーバーとドメイン上にある可能性がありますが、ロード バランサーを使用して 3 つの異なるサーバー間でトラフィックを移動しています。つまり、2 つのシステムがあり、それぞれが 3 つのサーバーで実行されています。以下では、ポートは異なるシステムに対応しています (91 = システム 1、92 = システム 2)。
いえ
- http://Server1.myHost.com:91
- http://Server1.myHost.com:92
- http://Server2.myHost.com:91
- http://Server2.myHost.com:92
- http://Server3.myHost.com:91
- http://Server3.myHost.com:92
これらのシステムは、http://System1.myHost.comおよびhttp://System2.myHost.comに移動することによって負荷分散され、ロード バランサーがユーザーを送信するサーバーを決定します。
問題は、ユーザーがhttp://System1.myHost.com (たとえば、実際には Server1 にある) にアクセスし、jQuery/iframe が一致する System2 サイト (この場合は Server1 にもある) を読み込もうとすると、Javascript が考えるそのhttp://System1.myHost.com (実際にはhttp://Server1.myHost.com:91 ) とhttp://Server1.myHost.com:92は 2 つの異なるドメインにあります。
どういうわけか、ロードバランサーのアドレスが実際のサーバーのアドレスと同じであると思うようにJavascriptをだます必要がありますが、方法がわかりません....
これを解決する方法についてのアイデアはありますか? =)