2012-12-13 77 views
2

我們有2個web應用程序,以2個不同的框架顯示信息(A & B)。 A中的javascript讀取B的隱藏字段,並根據隱藏字段的值採取一些操作。另外A負責裝載B的第一頁,B可以具有多個頁面並且對於A的命令可以在B的任何頁面中,B a的頁面基於B的當前狀態動態地構造。當A和B來自同一個域時。 但是在某些情況下(應用程序的性能和Architeture),我們需要讓A和B來自2個不同的域,在這種情況下,跨域限制不允許A讀取B隱藏域。我嘗試使用Access-Control-Allow-Origin,但它的接縫在瀏覽器中已經加載的兩幀之間不起作用。 雖然您可以認爲這是一種安全問題,但可以通過這類應用程序提高,這些應用程序可以在Intranet上運行。跨域域框架通信

做某人對解決

弗蘭克

+0

沒有100%的解決方案,但...從域使用兩個iframe一個發佈和另一個顯示將解決此問題。還使用腳本標記來克服跨域。 – SriN

回答

0

在你從同一個窗口中的不同領域多個iframe的情況下該問題的想法 - 你應該使用postMessage API使I幀之間發送消息(不管起源)。但是,您將不得不更改兩個iframe中的代碼以使postMessage正常工作。

基本上,A不是A讀取B字段,而是A向B發送一條消息,告訴它想要讀取它的字段,然後B將這些字段中的數據發回給A。

您也可以嘗試使用一些基於postmessage的更高級庫,如jsChannelpmrpc,它們使您能夠以更自然的方式(遠程過程調用)在iframe之間進行通信而不是發送消息。