2010-08-07 81 views
2

可能重複:
Load website into DIVjQuery的AJAX加載HTML

嘿我試圖找到一種方法來調用外部網站和retreve它的HTML,這樣我可以檢查其中的東西(用戶輸入一個有效的VIN#或不取決於本網站回電)

這是我的代碼:

$.ajaxSetup ({ 

    cache: false 
}); 

$("#load_callback").click(function(){ 
    $.ajax({ 
    url: 'http://www.google.com', 
    dataType: 'text', 
    success: function(data) { 
    alert(data); 
    } 
    }); 
}); 

它的工作原理,但只有當它指向我的服務器(並在我的服務器上運行)。有沒有一種方法可以使用jquery/ajax調用外部網站?我知道同源策略,但希望像什麼,我想做的事沒有落入該產品類別?

我甚至不能讓一個iFrame的標題?真???哇....

大衛

回答

2

您需要使用JSONP:http://en.wikipedia.org/wiki/JSON#JSONP

這些鏈接應該解釋一下:

的Ø療法的選擇,你必須是你自己的服務器端代理寫微博,即有一個網頁/控制器/服務器上,通過傳遞您的請求,並返回結果處理。它不會像直接進行的那樣快,並且會增加您網站的流量,但它會讓您圍繞安全問題。

+0

我似乎無法找到一個回調使用JSONP的HTML例子嗎? – StealthRT 2010-08-07 04:55:34

+0

你得到json並用js隨時轉換它。或者你也可以獲得一串完整的html數據,並將其插入到那裏。 – 2010-08-07 05:26:30

+0

但是其他服務器不在尋找JSON調用,也不會調用一個回來? – StealthRT 2010-08-07 05:27:44

0

玉碎簡單的事情,如果要加載的網站,簡單,與IFRAME去。如果你想要使用PHP或類似的請求。例如,您可以使用curl方法通過PHP向其他網站發送請求。或者更簡單一些,設置一個表單來請求另一個Web服務器。

+0

試圖用一個iframe中,但它給了我試圖讓I幀的innerHTML ... – StealthRT 2010-08-07 05:20:40

+0

如果是在不同的領域你不能用iframe中的內容進行交互時,拒絕的權限。 – 2010-08-07 05:25:28