2010-09-06 24 views
0

我有兩個站點,我的主站點和一個帶文檔的幫助站點。主要網站是鐵路,但另一個簡單的博客像wordpress。目前我有一個iframe被拉入主站點,但是有沒有一種很好的方法可以從另一個站點獲取html作爲某種跨域(實際上是子域)的部分?或者我應該堅持什麼有效?避免iframes,但有一些類似iframe的Rails活動

+0

雖然你也許可以去它以不同的方式,這有什麼錯你iFrame解決方案? – 2010-09-06 14:25:48

回答

1

如果數據源都位於同一個域中,則可以直接使用AJAX來獲取補充內容並將其移植到您的頁面上。但是,由於數據來自不同的域,內置於Web瀏覽器的same origin security policy將阻止該數據的運行。

流行的解決方法叫做JSONP,它可以讓你從任何合作的服務器上獲取數據。您的實現可以是這個樣子(使用jQuery):

$.getJSON(
    "http://my.website.com/pageX?callback=?", 
    function(data) { 
    $("#help").append(data) 
    } 
) 

唯一的障礙是由服務器返回的數據必須被包裝成一個javascript函數調用。例如,如果你的數據是:

<h1>Topic Foo</h1> 

那麼你的服務器必須向JSONP請求,這樣的迴應:

callbackFunction("<h1>Topic Foo</h1>")