【发布时间】:2012-01-11 15:51:43
【问题描述】:
我正在尝试发送如下查询字符串参数,但我认为在查询字符串中使用逗号无效,那么有什么更好的替代路径参数的逗号分隔符?
<a href="/?path=1,2,3"></a>
我不想像<a href="/?path=1&path=2&path=3"></a> 这样发送很长的邮件。
【问题讨论】:
标签: url query-string web
我正在尝试发送如下查询字符串参数,但我认为在查询字符串中使用逗号无效,那么有什么更好的替代路径参数的逗号分隔符?
<a href="/?path=1,2,3"></a>
我不想像<a href="/?path=1&path=2&path=3"></a> 这样发送很长的邮件。
【问题讨论】:
标签: url query-string web
你可以使用%2C,这是,的url编码值。
【讨论】:
p 将是 1,2,3,但是,用户会在他们的浏览器中看到编码的 url,您现在可能会看到想要,所以我猜你可以使用- 作为分隔符,因为它不需要蜜蜂编码。
逗号是允许的,也可以是未编码的形式,因为它是一个保留字符。
查看此 RFC 部分:RFC 3986 - 2.2. Reserved Characters
据我了解,这仅取决于您的服务器如何处理包含逗号的 URL。试一试就知道了。
【讨论】:
您可以使用转义的(如果我们是迂腐的,则使用百分比编码的)值 ',',或根据 RFC 3986 (- _ . ~) 的未保留字符。
【讨论】:
你可以简单的发送,我使用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
【讨论】:
如果要发送整数,请使用空格作为分隔符。
【讨论】:
你可以使用管道“|”作为分隔符,但您将不得不在服务器端处理它。不过不确定这是否值得。
【讨论】: