【发布时间】:2012-06-20 17:42:26
【问题描述】:
URL 的 query 部分似乎由由 & 分隔并由 = 关联的键值对组成。
我一直使用 jQuery 的 $.param() 函数对我的查询字符串进行 URL 编码,因为我发现它使我的代码更具可读性和可维护性。
在过去的几天里,我发现自己在调用 MediaWiki API,但是在使用硬编码 URL 清理我的工作原型以使用 $.param() 时,我注意到一些 MediaWiki API 包含带有键但不包含值的查询参数!
api.php ? action=query & titles=Main%20page & redirects
注意 &redirects 部分,它没有任何价值。
jQuery 的$.param() 接受一个对象,由于对象仅由键值对组成,因此不可能传递一个成员有键但没有值的对象。
这很好,所以我认为我可以传递一些值,例如 null 或 undefined 或 0 但似乎所有这些都被同等对待。我觉得这很令人惊讶,我一直无法发现任何 in the MediaWiki API documentation 背后的原因。
好的,在我的情况下,通过手动构建 URL 字符串很容易解决。我的问题是 “这是 MediaWiki API 中的一个怪癖吗?还是 URL 编码设计中的一个怪癖? 我应该从哪里阅读以了解没有关联值的 URL 编码参数背后的原因?
【问题讨论】:
-
如果不阅读文档,我会假设这只是意味着
redirects被视为具有true值的boolean,就像在大多数语言中你可以写if(redirects)而不是if(redirects==true) -
是的,我假设是一样的,我只是想知道这样做有多常见,以及这种可能性源自哪里,因为 URL 构建工具显然忽略了这种做法。
标签: jquery key-value url-parameters wikipedia-api mediawiki-api