2011-06-18 295 views
2

我在这里看到类似的问题,但我没有找到有关Javascript的任何答案。从另一个网站获取内容

我正在构建一个网站(让我们称之为'A'),并且我想从另一个需要用户名和密码的网站('B')获取内容。 我想在我的网站上获取B处某个页面内容的功能。我总是在我的计算机上手动登录到站点B,因此我不需要该功能来进行登录(所以我将它直接链接到B)信息的正确页面)。 A和B不在同一个域中。 Javascript中有从B获取内容的方法吗?

回答

5

你需要一个cross-doman AJAX调用(通常由same origin policy阻止)。 jQuery有一个方便的辅助功能此,将返回JSON数据称为$.getJson()

$.getJSON('http://otherdomain/ajax/test.json', function(data) { 
    if (undefined != data) { 
    console.log(data); 
    } 
}); 

这利用已知为JSONP的技术,其写入的Javascript直接进入该文件,使该请求(而不是使用XMLHttpRequest对象),绕过相同的原产地政策。

+0

那么,只是想知道是否有一种方法可以在纯Javascript中做到这一点,但不要猜测,所以我会开始阅读关于AJAX的内容。谢谢! – Roee84

+0

jQuery是一个使用Javascript编写的库,所以“库”可以作为“纯粹”的对象:) – Andy

0

没有就没有办法使用纯javascript摆脱外部B网页内容,但你可以尝试使用PHP curlfile_get_contents

+0

这就是我的想法,但我希望有一种方法..谢谢! – Roee84

2

我喜欢做的就是使用YQL(雅虎查询语言) 这就像api的API。我使用选择器获取我想要的任何html并处理它。 例如,我可以从this wikipedia link使用查询像 SELECT * FROM html WHERE url="http://en.wikipedia.org/wiki/List_of_United_States_National_Parks_by_state" AND xpath="//img",然后处理返回的XML/JSON抓住所有的图像

可以测试查询HERE

,看到抓取和处理图像in this Fiddle的例子

相关问题