2012-08-15 100 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