如何使用JavaScript/jQuery将其他站点的内容加载到我的站点上?

如何使用JavaScript/jQuery将其他站点的内容加载到我的站点上?,jquery,xml,ajax,json,wikipedia,Jquery,Xml,Ajax,Json,Wikipedia,我正试图将维基百科的文章加载到我的网站上。我试着按照这里的指示去做:但我不知所措 我试过: var xyz = document.getElementById(url("http://en.wikipedia.org/w/index.php?title=Special:Export&history=1&action=submit&pages=Albert_einstein") var xyz = $('#xyz').load('http://en.wikipedia.o

我正试图将维基百科的文章加载到我的网站上。我试着按照这里的指示去做:但我不知所措

我试过:

var xyz = document.getElementById(url("http://en.wikipedia.org/w/index.php?title=Special:Export&history=1&action=submit&pages=Albert_einstein")

var xyz = $('#xyz').load('http://en.wikipedia.org/w/index.php?title=Special:Export&history=1&action=submit&pages=Albert_einstein');

document.write(xyz);

您不能通过JavaScript从不同的域加载内容。JS阻止了它

“在计算中,同源策略是许多浏览器端编程语言(如JavaScript)的一个重要安全概念。该策略允许脚本在源于同一站点的页面上运行–方案、主机名和端口号的组合[–在没有特定限制的情况下访问彼此的方法和属性,但阻止在不同站点上跨页面访问大多数方法和属性。[1]”--Wikipedia,来自W3C

Shazbot建议使用iframe,但不推荐使用iframe。请使用对象:

<div class="timeContainer" style="background:#333; color:#090; padding:10px 0;">
  <div style="text-align:center; width:100%;">Current Date and Time</div> <!-- Heading, replaceable with hx tag -->

<!--[if IE]>
 <object classid="clsid:25336920-03F9-11CF-8FD0-00AA00686F13" data="your.url/" style="width:100%; height:19px;">
  <p>backup content</p>
 </object>
<![endif]-->

<!--[if !IE]> <-->
 <object type="text/html" data="your.url/" style="width:100%; height:19px;">
  <p>backup content</p>
 </object>
<!--> <![endif]-->
</div> <!-- timeContainer -->

当前日期和时间
备份内容


或者,您可以通过PHP使用cURL(如果您的服务器支持的话)。我不确定Python,但我认为Python也可以使用cURL。

您不能通过JavaScript从不同的域加载内容。JS阻止了它

“在计算中,同源策略是许多浏览器端编程语言(如JavaScript)的一个重要安全概念。该策略允许脚本在源于同一站点的页面上运行–方案、主机名和端口号的组合[–在没有特定限制的情况下访问彼此的方法和属性,但阻止在不同站点上跨页面访问大多数方法和属性。[1]”--Wikipedia,来自W3C

Shazbot建议使用iframe,但不推荐使用iframe。请使用对象:

<div class="timeContainer" style="background:#333; color:#090; padding:10px 0;">
  <div style="text-align:center; width:100%;">Current Date and Time</div> <!-- Heading, replaceable with hx tag -->

<!--[if IE]>
 <object classid="clsid:25336920-03F9-11CF-8FD0-00AA00686F13" data="your.url/" style="width:100%; height:19px;">
  <p>backup content</p>
 </object>
<![endif]-->

<!--[if !IE]> <-->
 <object type="text/html" data="your.url/" style="width:100%; height:19px;">
  <p>backup content</p>
 </object>
<!--> <![endif]-->
</div> <!-- timeContainer -->

当前日期和时间
备份内容


或者,您可以使用cURL(如果您的服务器支持的话)通过PHP。我不确定Python,但我认为Python也可以使用cURL。

如果您使用的是现代浏览器,您应该能够使用CORS。根据Wikipedia API文档,您需要传递一个与浏览器发送的
origin
头匹配的附加
origin
参数

“来源-使用跨域访问API时 AJAX请求(CORS),将其设置为原始域。 这必须与Origin:header中的一个Origin完全匹配,因此必须将其设置为 或 如果此参数与Origin:header不匹配,将返回403响应。 如果此参数与Origin:header匹配,并且Origin被列入白名单,则访问控制允许Origin头 将被设置。”


如果您使用的是现代浏览器,您应该能够使用CORS。根据Wikipedia API文档,您需要传递一个与浏览器发送的
origin
标题匹配的附加
origin
参数

“来源-使用跨域访问API时 AJAX请求(CORS),将其设置为原始域。 这必须与Origin:header中的一个Origin完全匹配,因此必须将其设置为 或 如果此参数与Origin:header不匹配,将返回403响应。 如果此参数与Origin:header匹配,并且Origin被列入白名单,则访问控制允许Origin头 将被设置。”



不使用服务器端进程是不行的:客户端的方法就是使用iFrame。当然,您不能控制它的内容,但它可以工作。@summea只有在外部站点支持JSONP的情况下才能工作(注意P)有没有一种方法可以使用Python或其他语言来实现?他们似乎明白了,没有?如果不使用服务器端进程,您就无法做到:客户端的实现方法就是使用iFrame。当然,您对其内容没有任何控制权,但它会起作用。@summea只有在外部站点支持JSONP的情况下才能实现(请注意P)有没有一种方法可以使用Python或其他语言来实现这一点?他们似乎明白了,没有?如果源代码支持jsonp-那么这不是真的,你可以成功地跨域传输数据,iframe被推荐,因为它可以方便地显示另一个域的内容-他将如何使用对象在他的页面上显示wikipedia的内容没有jsonp的页面???@ScottSelby:请查看更新的答案,包括目标代码。此外,如果我的答案是错误的,那么维基百科和W3C都是错误的。我取消了投票,这没有错,但有一些方法可以绕过这一限制,这是常用的,几乎当前的每个网站都在si上有某种类型的社交媒体数据来自跨域的terequests@ScottSelby:谢谢。在你提到JSONP之前,我不知道它。根据我在回答时所掌握的知识,我给出了尽可能完整的答案。如果源代码支持JSONP-那么这不是真的,你可以成功地跨域传输数据,并且iframe被重新推荐因为它将允许轻松显示另一个域名内容-他将如何在没有jsonp的情况下使用对象在其页面上显示wikipedia的内容???@ScottSelby:请查看更新的答案,包括对象代码。此外,如果我的答案是错的,那么wikipedia和W3C都是错的。我取消了投票,这没有错,但有办法围绕这一普遍使用的限制,目前几乎每个网站都有一些来自跨领域的社交媒体数据requests@ScottSelby:谢谢。直到你提到JSONP,我才知道。根据我在回答时所掌握的知识,我尽可能完整地给出了一个答案。好的,第谢谢你的建议。我会浏览一下,看看它会把我带到哪里。请继续关注:)你有什么建议吗