Параметры URL-адреса MediaWiki без значений

Часть queryURL, по-видимому, состоит из пар ключ-значение, разделенных &и связанных =.

Я всегда использовал функцию jQuery $.param()для URL-кодирования моих строк запроса, потому что я считаю, что это делает мой код более читабельным и удобным в сопровождении.

За последние пару дней я обнаружил, что вызываю API MediaWiki, но при очистке моего рабочего прототипа с жестко запрограммированными URL-адресами для использования $.param()я заметил, что некоторые API MediaWiki включают параметры запроса с ключи, но не значения!

api.php ? action=query & titles=Main%20page & redirects

Обратите внимание на часть&redirects, которая не принимает значения.

JQuery $.param()принимает объект, а поскольку объекты состоят только из пар ключ-значение, невозможно передать объект, один член которого имеет ключ, но не имеет значения.

Это нормально, поэтому я предположил, что могу просто передать какое-то значение, например nullили undefinedили 0, но похоже, что все они обрабатываются одинаково. Я нахожу это удивительным, и я не смог найти ничего в документации MediaWiki APIо причинах этого.

Хорошо, в моем случае это легко обойти, создав строку URL вручную. Мой вопрос: «Это особенность API MediaWiki? Или особенность конструкции URL-кодирования? Где я должен прочитать, чтобы понять аргументацию в пользу параметров, закодированных в URL, которые не имеют связанных значений?

7
задан Damjan Pavlica 18 October 2015 в 17:54
поделиться