12

AJAX (XMLHttpRequest) を使用してウィキペディアの API に簡単なリクエストを実装しようとしています。Firefox のアドレス バーに URL を入力すると、きちんとした XML が表示されます。それでも、次のようにまったく同じ URL を呼び出します。

// this is my XMLHttpRequest object
httpObjectMain.open("GET", "http://en.wikipedia.org/w/api.php?action=query&format=xml&prop=langlinks&lllimit=500&titles=kaas", true);
httpObjectMain.send(null);

空の応答を返します。FireBug によると、200 OK 応答が返されますが、内容は空です。

GET http リクエストのヘッダーに何かが欠けているのではないかと思います。

ヘルプ!(ありがとう!)

4

2 に答える 2

17

Wikipedia APIはJSONPをサポートしています。クエリ文字列は次のようになります。

http://en.wikipedia.org/w/api.php?action=query&format=json&callback=test&prop=langlinks&lllimit=500&titles=kaas

ただし、jsonp ハンドラーを作成する必要があります (または、お気に入りのライブラリを使用して実行できます)。選択した xml から json 出力形式に切り替え、コールバック関数を作成して結果を解析し、必要な処理を実行します。ページ。

于 2010-03-03T23:50:20.707 に答える
-1

ブラウザーは、ページが存在するドメイン以外の別のドメインに XHR を送信することを許可しません。これはセキュリティ上の目的のためです。

私が見たこれを回避する1つの方法は、ページがホストされているドメインにプロキシをセットアップし、リクエストを実際のAPIサーバーに渡すことです。http://ajaxpatterns.org/Cross-Domain_Proxyを参照してください

于 2010-03-03T19:43:44.500 に答える