替代通过查询字符串发送逗号分隔的参数

时间:2011-12-02 16:21:37

标签: url query-string web

我正在尝试发送querystring参数,如下所示,但我认为在查询字符串中使用逗号无效,那么路径参数的逗号分隔符有什么更好的选择?

<a href="/?path=1,2,3"></a>

我不想像<a href="/?path=1&path=2&path=3"></a>那样发送很长的时间。

6 个答案:

答案 0 :(得分:11)

您可以使用%2C,它是,的网址编码值。

答案 1 :(得分:7)

允许逗号,也是未编码的形式,因为它是保留字符。

查看此RFC部分:RFC 3986 - 2.2. Reserved Characters

正如我所说,它只取决于您的服务器如何处理包含逗号的URL。试试看吧。

答案 2 :(得分:3)

根据RFC 3986( - _。〜),您可以使用','或非保留字符的转义(或百分比编码,如果我们是迂腐的)。

答案 3 :(得分:0)

您可以简单地发送,我使用lodash收集选择的产品ID

 vm.saleStartDate = vm.saleDateRange.startDate.toISOString();
 vm.saleEndDate = vm.saleDateRange.endDate.toISOString();

 vm.productIds = _.map(vm.selectedProducts, 'id').join(',');

 vm.iFrameURL = host + '/Reports/MonthWiseAvgSalesViewer.aspx?id=MonthWiseAvgSalesReport.rdlc&salesSD=' + vm.saleStartDate + '&salesED=' + vm.saleEndDate +
               '&prIds=' + vm.productIds

答案 4 :(得分:0)

如果要发送整数,请使用空格作为分隔符。

答案 5 :(得分:-1)

你可以使用管道“|”作为分隔符,但您将不得不在服务器端处理它。不确定这值得麻烦。