1

ウィキペディアに対していくつかの Ajax リクエストを作成しようとしています。Ajax 呼び出しは for ループ (JavaScript) 内にあります。これは、順不同で返されるため問題です。これを回避するために、サンド ボックスのオプションとして、Ajax リクエストにリクエスト ID を含めることを考えました。IDが返ってこないのが問題…?

(ウィキメディアのサンドボックスより)

https://en.wikipedia.org/wiki/Special%3aApiSandbox#action=opensearch&format=json&requestid=12&search=clownfish

戻り値:

[
    "clownfish",
    [
        "Clownfish",
        "Clown"
    ],
    [
        "To the scientific name of an organism: This is a redirect from a vernacular (\"common\") name to the scientific name of an organism (or group of organisms).",
        "Clowns are comic performers who employ slapstick or similar types of physical comedy, often in a mime style."
    ],
    [
        "https://en.wikipedia.org/wiki/Clownfish",
        "https://en.wikipedia.org/wiki/Clown"
    ]
]

リクエスト ID がありません。しかし、アクションを「opensearch」から別のものに変更すると、リクエスト ID が返されます。

https://en.wikipedia.org/wiki/Special%3aApiSandbox#action=cspreport&format=json&requestid=12

戻り値:

{
    "error": {
        "code": "cspreport-wrongformat",
        "info": "Error processing CSP report: wrongformat.",
        "*": "See https://en.wikipedia.org/w/api.php for API usage."
    },
    "requestid": "12",
    "servedby": "mw1194"
}

ご覧のとおり、この応答には requestid が含まれています。

これは予期された動作ですか、それとも何か不足していますか? どんな助けでも大歓迎です:)

4

2 に答える 2

2

OpenSearch Suggestions 拡張仕様では、requestid などの追加の戻り値は許可されていません。これは、opensearch モジュールが警告を返すこともできないため、警告をエラーとして扱うパラメーターを持っている理由でもあります。

代わりにaction=query&list=prefixsearchを使用してみてください。これにより、action=opensearch と同じ結果が得られますが、MediaWiki アクション API の標準形式になります。

于 2016-12-31T03:55:20.030 に答える