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

时间:2013-04-10 20:59:19

标签: jquery xml ajax json wikipedia

我正在尝试将维基百科文章加载到我的网站上。我试图按照这里的说明进行操作:http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Transwiki但我不知所措。

我试过了:

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);

2 个答案:

答案 0 :(得分:1)

您无法通过JavaScript加载来自其他域的内容。 JS security policy阻止了它。

“在计算中,相同的原始策略是许多浏览器端编程语言(如JavaScript)的重要安全概念。该策略允许在源自同一站点的页面上运行脚本 - 方案,主机名和端口号 [1 的组合 - 访问彼此的方法和属性,没有特定限制,但阻止访问不同站点上的页面上的大多数方法和属性。 [1]
- 维基百科,来自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。

答案 1 :(得分:0)

如果您使用的是现代浏览器,则应该可以使用CORS。根据Wikipedia API文档,您需要传递一个与浏览器发送的origin标题相匹配的额外Origin参数。

http://en.wikipedia.org/w/api.php

  

“origin” - 使用跨域访问API时   AJAX请求(CORS),将其设置为原始域。                           这必须与Origin:标题中的一个起源完全匹配,因此必须将其设置为类似的内容   http://en.wikipedia.orghttps://meta.wikimedia.org。                           如果此参数与Origin:标头不匹配,则将返回403响应。                           如果此参数与Origin:标头匹配且原始列入白名单,则为Access-Control-Allow-Origin标头   将被设定。“