问题标签 [query-string]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
29199 浏览

asp.net - 空 QueryString 参数

问题

foo使用 asp.net 在以下 url 的查询字符串中检查参数的正确方法是什么?这甚至可能吗?

我已经尝试过检查Request["foo"]Request.QueryString["foo"]并且我都得到null了。我还尝试使用集合List中的值填充 a,QueryString但正如我在下面提到的,它不包括该值。

问题

我知道没有价值,但不应该Request["foo"]返回空字符串而不是null? 有没有办法找出查询字符串键是否存在,即使它没有值?

笔记

我发现这里包括Request.QueryString.AllKeys空白null查询字符串参数。

[编辑]

正如JamesDreas下面所述,解析原始 url 的正则表达式可能是最好的(也可能是唯一的)方法。

0 投票
12 回答
200199 浏览

php - 用键内爆关联数组的最快方法

我正在寻找一种将关联数组转换为字符串的快速方法。典型的结构类似于 URL 查询字符串,但具有可自定义的分隔符,因此我可以将 ' &' 用于 xhtml 链接或使用 ' &' 否则。

我的第一个倾向是使用foreach,但由于我的方法可以在一个请求中多次调用,我担心它可能太慢了。

有更快的方法吗?

0 投票
5 回答
11630 浏览

asp.net-mvc - ASP.NET MVC - 将多个查询字符串参数映射到漂亮的 url

我对 mvc 的 seo 友好 url 的设计有点卡住了……以以下 url 为例: http://myapp/venues/resturants.aspx?location=central&orderBy=top-rated

使用我的 mvc 应用程序,我将其映射如下: http://myapp/venues/list/resturants/central/top-rated
{controller}/{action}/{category}/{location}/{order}

现在唯一的问题是位置和顺序是可选的......所以应该可以提交如下请求:http://myapp/venues/list/resturants/top-rated。当请求命中控制器动作时,这被证明是一个问题,位置参数自然而然地获得了“最高评价”。

有什么建议么?我正在考虑使用显式查询字符串来处理多个参数,但这确实是我最后的选择,因为我不想过多地牺牲 SEO。

有没有人遇到过这样的困境?你是怎么处理的?

提前致谢!

0 投票
4 回答
5550 浏览

http - 我应该如何将字典编码为 HTTP GET 查询字符串?

HTTP GET 查询字符串是键/值对的有序序列:

是,具有一定的语义,相当于下面的字典:

这恰好适用于被请求的页面的布尔属性:

如果您想停止扩展 id 为 2 的元素,只需将其从expand值中弹出并再次对查询字符串进行 urlencode。但是,如果您有一个更模态的属性(有 3 种以上的选择),您真的想表示这样的结构:

其中对应 id 键的值是已知枚举的一部分。将其编码为查询字符串的最佳方法是什么?我正在考虑使用这样的二元组序列:

编辑:知道与约定相关的任何名称也很好。我知道可能没有,但是很高兴能够使用名称而不是示例来谈论特定的事情。谢谢!

0 投票
6 回答
1103 浏览

model-view-controller - 在 MVC 中,分页信息应该放在路径还是查询字符串中?

在路径中:

格式: http : //mydomain.com/{category}/{subcategory}/{pageNumber}/{pageSize}

示例: http: //mydomain.com/books/thriller/3/25

在查询字符串中:

格式: http: //mydomain.com/ {category}/{subcategory}? pageNumber={pageNumber}&pageSize={pageSize}

示例: http ://mydomain.com/books/thriller?pageNumber=3&pageSize=25

我喜欢一切都在路上,但我的问题是,虽然在第一个示例中“书籍”和“惊悚片”是显而易见的(或至少有些明显),但“3”和“25”似乎相当随意相比之下。

是否有一种规范的方法来确定 MVC 中的内容,或者它真的只是由开发人员决定?

0 投票
2 回答
5239 浏览

apache - 为什么 Apache 会对我的查询字符串进行 URL 解码?

我的网络主机拒绝帮助我解决这个问题,所以我来这里寻求一些“黑盒调试”的帮助。这是我发送给他们的内容的编辑版本:

我在 dreamhost 有两个(除其他外)域:

1) thefigtrees.net 2) shouldivoteformccain.com

我今天注意到,当我在 #1 上托管 CGI 脚本时,当 CGI 脚本运行时,作为 QUERY_STRING 环境变量传递给它的 HTTP GET 查询字符串已经被 URL 解码。这是一个问题,因为这意味着标准 CGI 库(例如 perl 的 CGI.pm)将尝试在 & 符号上拆分,然后对字符串本身进行解码。这有两个潜在的问题:

1)字符串是双重解码的,所以如果一个值被提交给脚本,例如“%2525”,它最终会被视为“%”(解码两次)而不是“%25”(解码一次)

2)(更常见)如果提交的值中有一个&符号,那么它将(正确)提交为%26,但QUERY_STRING env。变量会将其解码为“&”,然后 CGI 库将在该 & 符号处不正确地拆分查询字符串。这是个大问题!

http://thefigtrees.net/test.cgi上的脚本演示了这一点。它回显了调用它的环境变量。在浏览器中导航到:

http://thefigtrees.net/lee/test.cgi?x=y%26z

您可以看到 REQUEST_URI 正确包含 x=y%26z(未编码),但 QUERY_STRING 已将其解码为 x=y&z。如果我在域 #2 ( http://www.shoulddivoteformccain.com/test.cgi?x=y%26z )重复测试, 我会看到 QUERY_STRING 仍未解码,因此 CGI.pm 然后会正确拆分和解码。

我尝试在两者上禁用我的 .htaccess 文件以确保这不是问题,并且没有发现任何区别。

由于我的网络主机似乎不愿意帮助我,任何人都可以推测造成这种情况的潜在原因吗?

谢谢,李

0 投票
4 回答
6221 浏览

javascript - 用 JSON 表示一个查询字符串

我有这个 Javascript 数据:

您如何将其转换为某种东西,以便我可以将其作为 HTTP 发布请求传递?

我不想传递实际的 JSON 数据,我想清理它并将其作为格式化的 HTTP 参数传递。

编辑

能够使用类似这样的东西在客户端解析对象,也许你们会在我将其签署为“已回答”之前提出更好的建议?

0 投票
4 回答
26639 浏览

asp.net-mvc - ASP.NET MVC QueryString 默认覆盖提供的值?

使用 ASP.NET MVC Preview 5(尽管在 Beta 版中也尝试过),路由中的查询字符串默认值似乎覆盖了在查询字符串中传递的值。一个repro是写一个这样的控制器:

路由映射如下:

然后使用这个相对 URI 调用它:

我看到的跟踪输出是:

所以换句话说,为路由设置的默认值总是传递给方法,不管它是否实际在查询字符串中提供。请注意,如果查询字符串的默认值被删除,即路由映射如下:

然后控制器按预期运行,并将值作为参数值传入,给出跟踪输出:

这在我看来像一个错误,但我会发现像这样的错误仍然存​​在于 ASP.NET MVC 框架的 beta 版本中,这让我感到非常惊讶,因为具有默认值的查询字符串并不完全是一个深奥或边缘情况的功能,所以几乎可以肯定是我的错。任何想法我做错了什么?

0 投票
5 回答
5317 浏览

asp.net-2.0 - 替代查询字符串 C# (asp.net)

是否有一种快速而肮脏的方式来使用如下传递的查询:

domain.com/mypage.aspx/product/toycar/

我以前在 PHP 中做过,但这需要在页面中完成(在本例中)。

-- 我只能访问 aspx 页面和后面的代码,并且必须在 asp.net 2 中工作(我希望我使用的是 3.5)

0 投票
7 回答
7332 浏览

php - 如何配置 Apache/PHP 以接受查询字符串中的斜杠?

我有两台运行 PHP 的 Apache 服务器。一个接受查询字符串中的正斜杠并以预期的方式将其传递给 PHP,例如:

有效,在 PHP 中这个表达式为真:

但是,在其他Apache 服务器中,相同的 URL 会导致403 Forbidden错误!请注意,如果查询字符串正确地进行了 URL 转义(即使用%2F而不是正斜杠),那么一切正常。

很明显,导致这种情况的 Apache 或 PHP 配置存在一些差异,但我不知道是什么原因!

我想在这两种情况下都接受这种形式的 URL,而不是拒绝它。