3

MediaWiki API を使用して、ウィキメディア コモンズで画像を検索しようとしています。検索パラメータを含むリクエストした URL は次のとおりです。

https://commons.wikimedia.org/w/api.php?action=query&list=allimages&format=json&aifrom=Dada

JSON形式で応答を取得することに成功しましたが、次の理由でプログラムで読み取ることができませんでした:

要求されたリソースに「Access-Control-Allow-Origin」ヘッダーがありません。

何かアドバイス?

アップデート:

url: にもう 1 つのcallback=JSON_CALLBACKパラメーターを追加しました。これにより、応答が jsonp 形式に変換されます。angular$http.jsonp()メソッドも使用できるようになりました。

4

2 に答える 2

3

「 'Access-Control-Allow-Origin' ヘッダーが要求されたリソースに存在しません。」 エラーを防ぐために1を使用します。それは動作します:jsonpdataType

$.ajax({
    dataType: 'jsonp',
    url : 'https://commons.wikimedia.org/w/api.php?action=query&list=allimages&format=json&aifrom=Dada',
    success : function(json) {
        json.query.allimages.forEach(function(item) {
            $('<img/>', { src : item.url }).appendTo('#images');
        })    
    }     
})    

#images <div>ここでは、デモンストレーションの目的で、各画像を に追加します。

デモ -> http://jsfiddle.net/52g2Lazw/

1 ) JSONP は「JSON with Padding」の略で、異なるドメインからデータをロードするための回避策です。スクリプトを DOM のヘッドにロードするため、独自のドメインにロードされているかのように情報にアクセスできるため、クロスドメインの問題citeを回避できます。

于 2015-11-01T09:02:00.460 に答える