Часть query
в URL
, кажется, состоит из пар ключ-значение, разделенных &
и связанных =
.
Я привык всегда использовать функцию jQuery $.param()
для URL-кодирования строк моего запроса, потому что я считаю, что это делает мой код более читабельным и поддерживаемым.
За последние пару дней я обнаружил, что звоню в MediaWiki API, но при очистке моего рабочего прототипа с жестко закодированными URL-адресами для использования $.param()
я заметил, что некоторые MediaWiki API включают параметры запроса с ключами, но не со значениями!
api.php ? action=query & titles=Main%20page & redirects
Обратите внимание на часть &redirects
, которая не имеет значения.
$.param()
jQuery принимает объект, и поскольку объекты состоят только из пар ключ-значение, невозможно передать объект, в котором один член имеет ключ, но не имеет значения.
Это нормально, поэтому я решил, что могу просто передать какое-то значение, например null
, undefined
или 0
, но похоже, что все они обрабатываются одинаково. Я нахожу это удивительным, и мне не удалось обнаружить что-либо в документации MediaWiki API О причинах этого.
Хорошо, в моем случае легко обойтись, создав строку URL-адреса вручную. Мой вопрос: «Является ли это причудой API MediaWiki? Или особенностью конструкции кодирования URL-адресов? Где мне следует прочитать, чтобы понять причины, лежащие в основе параметров, закодированных в URL-адресах, без связанных значений?
redirects
рассматривался какboolean
со значениемtrue
, аналогично тому, как в большинстве языков вы могли писатьif(redirects)
вместоif(redirects==true)
- person ChrisW   schedule 18.06.2012