2012-08-09 96 views
2

我正在嘗試使用GWT在一個iframe中運行一個應用程序。直到這裏一切都好,事情是,我有我的實際網絡中的一個窗體,將請求發送到iframe。使用Java腳本時,我按下按鈕「發送表單」更改我的iframe的src和後刷新:更改具有跨域的src iframe

document.getElementById('iframeSpecialOffers').src = container.url; 

document.getElementById('iframeSpecialOffers').contentWindow.location.reload(); 

該網站在www.example.com:81運行,併爲我的IFRAME SRC新在www.example.com:8082,我得到這個錯誤

 Unsafe JavaScript attempt to access frame with URL http://example:8082/Home.html#!TilePage;searchQuery=*;searchMode=1;amount=1; 
position='47.3686498,8.539182500000038';leftBottomPosition='47.32023,8.448059899999976'; 
    rightTopPosition='47.43468,8.625370100000055';availabilityEndDate=datetime'2012-08-012T18:00:00';$culture=en 
    from frame with URL http://example:81/. Domains, protocols and ports must match. 

非常感謝!

回答

2

爲了保護人們免受XSS攻擊(跨站點腳本攻擊),瀏覽器不允許您訪問iFrame或不屬於同一域的窗口內的任何內容。

但是,您可以設置某種標題,告訴瀏覽器允許跨域的東西。

http://en.wikipedia.org/wiki/Cross-origin_resource_sharing

我不知道這是你應該去,雖然,這將是更好的避免這種事情的路線。

如果你的目標是嚴格刷新則只需重新設置SRC這樣做的頁面,我相信這將只是做類似刷新:

document.getElementById('iframeSpecialOffers').src = document.getElementById('iframeSpecialOffers').src;

但如果不你可以附加一個無用的queryString參數來使它不同。

+0

是的,非常感謝。是的,但如果我想要在標題中注入一個cookie將無法正常工作,因爲使用此指令我不會在標題中放入任何信息。感謝您的鏈接是非常有趣的信息 – 2012-08-09 08:51:27