aのquery部分は、 でURL区切られ&、 で関連付けられたキーと値のペアで構成されているよう=です。
私は常に jQuery の$.param()関数を使用してクエリ文字列を URL エンコードするようにしています。これにより、コードがより読みやすく、保守しやすくなることがわかったからです。
ここ数日、私は MediaWiki API を呼び出していること$.param()に気付きましたが、ハードコードされた URL を使用して作業中のプロトタイプをクリーンアップしているときに、一部の MediaWiki API にはキー付きのクエリ パラメーターが含まれているが、値が含まれていないことに気付きました!
api.php ? action=query & titles=Main%20page & redirects
&redirects値を取らない部分に注意してください。
jQuery$.param()はオブジェクトを受け取ります。オブジェクトはキーと値のペアのみで構成されるため、1 つのメンバーがキーを持ち、値を持たないオブジェクトを渡すことはできません。
nullそれは問題ないので、またはundefinedまたはなどの値を渡すことができると思いまし0たが、これらはすべて同じように扱われているようです。これは驚くべきことであり、MediaWiki API ドキュメントには、この背後にある理由について何も見つけることができませんでした。
私の場合は、URL 文字列を手動で作成することで簡単に回避できます。私の質問は、「これは MediaWiki API の癖ですか?それとも URL エンコードの設計の癖ですか?関連付けられた値を持たない URL エンコードされたパラメーターの背後にある理由を理解するには、どこを読むべきですか?」