a的query
部分似乎由由 分隔和关联的URL
键值对组成。&
=
我一直使用 jQuery 的$.param()
函数对我的查询字符串进行 URL 编码,因为我发现它使我的代码更具可读性和可维护性。
在过去的几天里,我发现自己在调用 MediaWiki API,但是在使用硬编码的 URL 清理我的工作原型时,$.param()
我注意到一些 MediaWiki API 包含带有键但不包含值的查询参数!
api.php ? action=query & titles=Main%20page & redirects
注意 part &redirects
,它没有任何价值。
jQuery$.param()
接受一个对象,并且由于对象仅由键值对组成,因此不可能传递一个成员具有键但没有值的对象。
没关系,所以我认为我可以传递一些值,例如null
or undefined
,0
但似乎所有这些都被同等对待。我发现这令人惊讶,并且我无法在 MediaWiki API 文档中发现任何有关其背后原因的内容。
好的,在我的情况下,通过手动构建 URL 字符串很容易解决。我的问题是“这是 MediaWiki API 中的一个怪癖吗?还是 URL 编码设计中的一个怪癖?我应该在哪里阅读以了解没有关联值的 URL 编码参数背后的原因?