0

この問題があります... JSON ファイルから名前をロードするプロジェクトに取り組んでいます (これは重要ではありません)。

問題は、Wikia Special:Filepathリンクを使用して画像を取得することです。したがって、ブラウザにhttp://2007.runescape.wikia.com/wiki/Special:Filepath/Abyssal_head.pngと入力すると、次の画像リンクが返されます: http://img1.wikia.nocookie.net/__cb20140108135954/2007scape /images/0/0f/Abyssal_head.png .

このリダイレクトを回避して、ajax 呼び出しで適切にロードできるようにする方法はありますか? この最初のリンクを実行しようとするたびに、このエラーが発生します (正しいヘッダーが見つからないため、これは正常です)。

XMLHttpRequest cannot load http://2007.runescape.wikia.com/wiki/Special:Filepath/Abyssal_head.png. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. 

すべてのヘルプは大歓迎です。

4

1 に答える 1

1

Special:Filepathはウィキ内からファイルにリンクするのに便利ですが、プログラムでパスを取得したい場合は、API を使用すると柔軟性が大幅に向上します。ファイルパスを取得するには、次のようにパラメーターprop=imageinfoiiprop=urlパラメーターを使用ます。

api.php?action=query &titles=Image:Abyssal_head.png &prop=imageinfo &iiprop=url &format=json

これにより、次のようなjsonオブジェクトが得られます

{"query": {
    "normalized":...,
    "pages":{
        "28052":{
            "pageid":28052,
            "ns":6,
            "title":"File:Abyssal head.png",
            "imagerepository":"local",
            "imageinfo":[
                {
                    "url":"http:\/\/img1.wikia.nocookie.net\/__cb20140108135954\/2007scape\/images\/0\/0f\/Abyssal_head.png",
                    "descriptionurl":"http:\/\/2007.runescape.wikia.com\/wiki\/File:Abyssal_head.png"
                }
            ]
        }
    }
}}

...希望のURLを入れてquery.pages.{PAGE}.imageinfo.url

タイトルを|.

2007.runescape.wikia.com/api.php完全なドキュメントについては、を参照してください。

于 2014-11-11T10:33:41.707 に答える