Часть query
URL
, по-видимому, состоит из пар ключ-значение, разделенных &
и связанных =
.
Я всегда использовал функцию jQuery $.param()
для URL-кодирования моих строк запроса, потому что я считаю, что это делает мой код более читабельным и удобным в сопровождении.
За последние пару дней я обнаружил, что вызываю API MediaWiki, но при очистке моего рабочего прототипа с жестко запрограммированными URL-адресами для использования $.param()
я заметил, что некоторые API MediaWiki включают параметры запроса с ключи, но не значения!
Обратите внимание на часть&redirects
, которая не принимает значения.
JQuery $.param()
принимает объект, а поскольку объекты состоят только из пар ключ-значение, невозможно передать объект, один член которого имеет ключ, но не имеет значения.
Это нормально, поэтому я предположил, что могу просто передать какое-то значение, например null
или undefined
или 0
, но похоже, что все они обрабатываются одинаково. Я нахожу это удивительным, и я не смог найти ничего в документации MediaWiki APIо причинах этого.
Хорошо, в моем случае это легко обойти, создав строку URL вручную. Мой вопрос: «Это особенность API MediaWiki? Или особенность конструкции URL-кодирования? Где я должен прочитать, чтобы понять аргументацию в пользу параметров, закодированных в URL, которые не имеют связанных значений?