1

ウィキペディアの記事を自分のサイトにロードしようとしています。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);
4

2 に答える 2

1

JavaScript を使用して、自分のドメインとは異なるドメインからコンテンツを読み込むことはできません。JSセキュリティ ポリシーはそれを防ぎます。

「コンピューティングでは、同一オリジン ポリシーは、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 を利用できると思います。

于 2013-04-10T21:06:02.800 に答える
0

最新のブラウザーを使用している場合は、CORS を使用できるはずです。Wikipedia API ドキュメントによると、ブラウザから送信されoriginたヘッダーと一致する追加のパラメーターを渡す必要があります。Origin

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

"origin - クロスドメイン AJAX リクエスト (CORS) を使用して API にアクセスする場合、これを元のドメインに設定します。これは、Origin: ヘッダーのオリジンの 1 つと正確に一致する必要があるため、 http:のようなものに設定する必要があります。 //en.wikipedia.orgまたはhttps://meta.wikimedia.org . このパラメーターが Origin: ヘッダーと一致しない場合、403 応答が返されます. このパラメーターが Origin: ヘッダーと一致し、オリジンがホワイトリストに登録されている場合、 Access-Control-Allow-Origin ヘッダーが設定されます。」

于 2013-04-10T21:30:41.653 に答える