2012-04-09 44 views
0

我試圖將iframe的源指定爲空白HTML頁面。由於源位於不同的域,我得到'權限被拒絕'的錯誤。有沒有辦法讓我將HTML源碼注入iframe以避免跨站點問題?將HTML源代碼插入到iframe中以避免跨站點腳本問題

+3

我認爲這屬於跨站腳本,所以不可能這樣做。如果您可以控制加載到iframe中的網站,則可以使用[window.postMessage](https://developer.mozilla.org/en/DOM/window.postMessage)。請問你的最終目標是什麼?也許還有另一種做你想做的事情的方法。 – wzub 2012-04-09 19:12:27

回答

0

有一個iframe到另一個域通常不是問題,你可以通過設置x-frame-options的http頭來防止他人在iframe中查看你的網站。 (而且我認爲你沒有打擾檢查http響應頭......)。

如果你只是需要一個空白頁面,然後打開iframe到你控制的頁面。像位於您的文檔根目錄中的blank.html。

+0

謝謝,我們只是在同一個域上創建了一個虛擬頁面。 – mpusarla 2012-07-24 19:48:03

0

正如Rook所說,指向iframe跨站點通常沒有問題。事實上,iframe是解決某個級別的跨站點通信的已知方式之一。此外,這種機制在廣告中用於向各個網站上的用戶動態提供內容。

無論如何,你可以實現你想要的另一種方式是創建一個代理服務。在您的本地服務器上,您可以編寫一個腳本,對該頁面發出GET請求,然後將HTML作爲自己的響應吐出。這樣,你的iframe的源可以指向你的本地服務器。

+0

感謝您的回覆。我會盡力詳細闡述這個問題。我們試圖通過使它們成爲通用小部件來分離Web應用程序上的Javascript代碼。爲了讓小部件能夠被其他應用程序重新使用,我們不能採用代理方式。這將要求小部件的所有用戶設置代理。我們需要在一個域下擁有所有的Javascript。由於網頁正在呈現在不同的域中,因此將小部件中的iframe源設置爲javascript域中的HTML頁面會導致問題。 – mpusarla 2012-04-18 02:35:37