从其他网站加载某些元素

时间:2013-08-13 13:00:57

标签: jquery html ajax

我正在为另一个网站创建一个视图成员屏幕(不在我的域中)。我试图根据他们的课程从这个网站上检索某些东西。例如,我试图获得具有.avatar类的人的化身。我试过了:

$('#accountPic').load('www.theWebsite.com .avatar');

尝试获取图片链接,但这不起作用。有没有办法从其他网站获取课程内容并自行显示?

3 个答案:

答案 0 :(得分:2)

由于Same Origin Policy,这不能通过客户端javascript工作。假设您尝试从中获取信息的站点没有用于外部访问的API,那么解决方法是使用PHP / ASP.Net等获取HTML服务器端,然后通过AJAX请求。

答案 1 :(得分:0)

第一步是检索外部网站的完整HTML文档。这本身就很可能会让你陷入无法解决的问题(因为浏览器安全限制)。

作为一个安全问题原因的一个例子:如果somebank.com在主页上有“欢迎回来,Jonathan T. Query!你当前的余额是4000美元。”然后其他网站可以检索该文本,并将其发送给谁知道在哪里。

如果网站有一个开发人员API来从中检索信息,您可以使用它。我知道在网站之间共享头像是OpenID项目的现实目标。如果没有,我认为您的问题可能无法解决。

答案 2 :(得分:0)

如果目标主机提供跨源访问,您可以这样做:

$.ajax({ 
    url: 'http://www.theWebsite.com', 
    complete: function(jqXHR) { 
        var doc = $(jqXHR.responseText); 
        var avatar = doc.find('.avatar'); 
        // ...
    } 
});