2009-06-26 75 views
1

我覺得這是很容易,但我失去了一些東西......jQuery的跨站點獲取

使用jQuery,我試圖獲取遠程頁面(在不同的服務器上),捕獲的HTML內容,並注入將該內容轉換爲隱藏的DIV。但是,使用$ .ajax或$ .get會導致FireFox中的跨站腳本錯誤。

有什麼建議嗎?代碼:

$.ajax({ 
    type: 'GET', 
    url: "http://www.remote-url.com", 
    dataType: 'html', 
    success: function(data) { 
     $('#put_here').empty().append(data); 
    } 
}); 

謝謝!

乍得

回答

4

你不能做到這一點 - 在Same Origin Policy防止其出於安全原因(如你發現)。

您需要在您自己的服務器上使用run a proxy script,您的JavaScript用它來代表它從遠程服務器獲取內容。

0

AJAX不允許跨域提取。你必須讓你的服務器從你想從中獲取信息的任何服務器中獲取。

0

如果您想要跨站點,則無法拉入整個頁面。有一種方法可以使用JSONP從跨域網站獲取數據。你所做的就是讓js將你獲得的數據作爲一個函數來評估json數據。但是,如果您嘗試獲取整個頁面,則無法工作。

2

或者,您可以使用已有的API(如YQL或Pipes)來訪問您之後的數據,然後使用JSONP(跨域可操作)返回結果。