2013-03-21 93 views
0

我剛開始學習jQuery。我遇到了這個「從其他網頁抓取內容」。 我在網站如何實現它的一個經歷的代碼,這裏是它的一部分:使用jQuery從另一個網頁抓取內容

$(document).ready(function(){ 
    $('#list').load("http://www.narutoget.com ul", function(responseText){ 
     $('#otherHtml').text(responseText); 
    }); 
}); 

我不能夠得到從頁面即narutoget.com內容。 有人可以幫我解決問題嗎? 我想知道這是否合法。

+0

出了什麼問題? – Chris 2013-03-21 07:34:22

+5

[同源策略(https://developer.mozilla.org/en-US/docs/JavaScript/Same_origin_policy_for_JavaScript) – Musa 2013-03-21 07:34:31

+0

對不起原因......我編輯我的意見。他所嘗試的確是顯而易見的,但不是,出了什麼問題。 「我無法獲得內容」並不是對他嘗試編碼時會發生什麼的非常詳細的描述。成功處理程序是否被調用?它只是不可用的頁面嗎?也許有一個JavaScript錯誤,因爲他可能不會從Web服務器傳遞頁面。你不能僅僅回答這些信息。 – Chris 2013-03-21 07:38:26

回答

0

正如你不是在維護其他部位,same origin policy將會阻止它,如果除了其它網站明確允許其通過包括良好CORS headers,唯一的解決辦法是做服務器端,在那裏你可以查詢你想要的服務器。

如果保持其他網站,以及,那麼你就必須把好CORS頭,讓你的第一個網站進行查詢。

下面是關於啓用各種服務器端技術跨起源請求一個很好的教程:enable-cors

一旦完成,你只需要查詢服務器和分析頁面:

$.get("http://www.narutoget.com", function(html) { 
    var ul = $('ul', html).val(); 
    $('#otherHtml').text(ul); 
}); 
0

你很可能阻止跨網站來源政策。 JSON-P是解決此問題的一種方法,JQuery Cross-Domain .load() (self-constructing widget)

您是否收到錯誤?查看NET下的Web檢查器,查看該請求的狀態代碼。如果沒有任何錯誤或跨域限制,我不會看到問題所在。你有沒有收到任何文字?

+0

男女均無沒有得到任何文字..... – ik024 2013-03-22 17:27:51

+0

嗯,我希望如果有可能首先使用PHP的包括funtion ....然後使用我的上面的代碼在我的PHP文件將它的工作呢? – ik024 2013-03-22 17:34:48