The query
的一部分URL
似乎由键值对组成&
并由相关联=
.
我一直习惯使用 jQuery$.param()
函数对我的查询字符串进行 URL 编码,因为我发现它使我的代码更具可读性和可维护性。
在过去的几天里,我发现自己在调用 MediaWiki API,但在使用硬编码 URL 清理我的工作原型时$.param()
我注意到一些 MediaWiki API 包含带键但不带值的查询参数!
注意部分&redirects
,这没有任何价值。
jQuery 的$.param()
接受一个对象,并且由于对象仅由键值对组成,因此不可能传递一个成员具有键但没有值的对象。
没关系,所以我假设我可以传递一些值,例如null
or undefined
or 0
但似乎所有这些都受到同样的对待。我觉得这很令人惊讶,而且我没发现任何东西在 MediaWiki API 文档中关于这背后的原因。
好的,在我的例子中,通过手动构建 URL 字符串很容易解决。我的问题是“这是 MediaWiki API 中的一个怪癖吗?还是 URL 编码设计中的一个怪癖?我应该在哪里阅读以了解没有关联值的 URL 编码参数背后的推理?
他们所做的很可能只是检查参数是否已定义。通过增加redirects
对于查询字符串,这实际上是在说“重定向变量为真”。所以,添加redirects=0
仍在定义该变量,并且 MediaWiki API 注意到它已被定义(不关心值是什么)。
您的 jQuery 代码只需要附加该参数(具有任何值或无值),或者如果您不希望定义它,则可以省略它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)