jquery - 不带值的 MediaWiki URL 参数

标签 jquery key-value url-parameters wikipedia-api mediawiki-api

query URL的一部分似乎由 & 分隔的键值对组成并由 = 关联.

我一直使用 jQuery 的 $.param()函数对我的查询字符串进行 URL 编码,因为我发现它使我的代码更具可读性和可维护性。

在过去的几天里,我发现自己在调用 MediaWiki API,但在使用硬编码 URL 清理我的工作原型(prototype)时要使用 $.param()我注意到一些 MediaWiki API 包含带键但不带值的查询参数!

api.php ? action=query & titles=Main%20page & redirects

注意 &redirects部分,没有任何值(value)。

jQuery 的 $.param()接受一个对象,并且由于对象仅由键值对组成,因此不可能传递一个成员具有键但没有值的对象。

没关系,所以我假设我可以传递一些值,例如 nullundefined0但似乎所有这些都受到同样的对待。我发现这很令人惊讶,我一直无法发现任何东西in the MediaWiki API documentation关于这背后的原因。

好的,在我的例子中,通过手动构建 URL 字符串很容易解决。我的问题是“这是 MediaWiki API 中的一个怪癖吗?还是 URL 编码设计中的一个怪癖?我应该在哪里阅读以了解没有关联值的 URL 编码参数背后的推理?

最佳答案

他们所做的很可能只是检查参数是否已定义。通过将 redirects 添加到查询字符串,这实际上是在说“redirects 变量为 true”。因此,添加 redirects=0 仍然是定义该变量,并且 MediaWiki API 会注意到它已被定义(不关心值是什么)。

您的 jQuery 代码只需要附加该参数(具有任何值或无值),或者如果您不希望定义它,则省略它。

关于jquery - 不带值的 MediaWiki URL 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11088184/

相关文章:

javascript - 如何将查询字符串中传递的变量访问到 jQuery 的 document.ready 函数中?

php - 如何发送检查过的 radio 值?

javascript - 使用 jquery 和 onchange 获取输入值

jquery - 如何使用 jQuery 从 JSON 获取属性值

ruby 哈希将值从一个键交换到另一个键

json - 仅使用 EJS 遍历 json 键

javascript - hide() 和 click() 方法 jquery

flash - 有趣的 AS3 哈希情况。它真的像文档所说的那样使用严格的平等吗?

url-parameters - 向 Web 服务 URL 添加第二个参数

gwt - 通过 Spring Security 登录保持 GWT 历史哈希