2012-08-15 102 views
0

嗨,我有這個jQuery的東西叫jquery-endless-scroll。我的代碼看起來類似於:Jquery從其他網站無限滾動加載內容

$(function() { 
    $('#list').endlessScroll({ 
    pagesToKeep: 10, 
    fireOnce: false, 
    insertBefore: "#list div:first", 
    insertAfter: "#list div:last", 
    content: function(i, p) { 
     $.get('http://google.com', function(data) { 
     return '<li>' + data + '</li>' 
     }); 
    }, 
    ceaseFire: function(i) { 
     if (i >= 10) { 
     return true; 
     } 
    }, 
    intervalFrequency: 5 
    }); 
}); 

我的主要問題是它應該返回的內容。其餘的並不重要。 我希望它返回google.com的html標記,但不返回此標記,它不返回任何內容。我究竟做錯了什麼?

回答

1

由於出於安全目的的跨域策略問題,您無法使用客戶端JavaScript執行此操作。但是,如果嘗試在您的腳本正在運行的同一個域上讀取文件的內容,那麼它將起作用。

您應該使用node.js - 服務器端JavaScript這樣的東西:

http://net.tutsplus.com/tutorials/javascript-ajax/web-scraping-with-node-js/

+0

哦,其實我想讀取一個在同一個域名「/ user/bookmarks/raw」上的html文檔,但即使我將url更改爲它仍然不能正常工作/它以前不工作。它只是返回undefined – 2012-08-15 07:57:22

+0

嘗試使用螢火蟲或鉻檢查器在控制檯中調試'數據'。 – codef0rmer 2012-08-15 08:18:54

+0

XMLHttpRequest無法加載file:///home/peer/jquery-endless-scroll/foo.html。 Access-Control-Allow-Origin不允許Origin null。順便說一句:我在瀏覽器中打開的文件是file:///home/peer/jquery-endless-scroll/index.html,所以它是同一個域(至少某種類型)。 – 2012-08-15 08:23:35

1

您的內容沒有被因同源策略返回。您無法從其他服務器請求數據。

見註上http://api.jquery.com/jQuery.get/

「由於瀏覽器的安全限制,大多數‘Ajax’的請求都受到同樣的原產地政策;請求不能成功地從不同的域,子域,或協議檢索數據。」

+0

在第一個答案下看到我的評論。 – 2012-08-15 08:01:14

+0

根據您對第一個答案的評論,您的問題仍然存在於原產地政策中,即使您在當地就地工作也是如此。 你需要在服務器上測試這個,或者繞過瀏覽器的安全設置 – 2012-08-15 08:37:22

+0

ahhh好吧謝謝 – 2012-08-15 08:58:07