Альтернатива отправке через запятую параметра через строку запроса - PullRequest
12 голосов
/ 02 декабря 2011

Я пытаюсь отправить параметр querystring, как показано ниже, но я думаю, что использование запятой в querystring недопустимо, так что является лучшей альтернативой разделителю запятых для параметра пути?

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

Я не хочуотправить как <a href="/?path=1&path=2&path=3"></a>, что может быть довольно долго.

Ответы [ 6 ]

11 голосов
/ 02 декабря 2011

Вы можете использовать %2C, которое является закодированным в URL значением ,.

8 голосов
/ 01 августа 2014

Запятая также допускается в незашифрованном виде, поскольку это зарезервированный символ.

Взгляните на этот раздел RFC: RFC 3986 - 2.2. Зарезервированные персонажи

Как я понял, все зависит от того, как ваш сервер обрабатывает URL-адреса, содержащие запятую. Попробуйте и узнайте.

3 голосов
/ 02 декабря 2011

Вы можете использовать экранированное (или кодированное в процентах, если мы педантично) значение ',' или незарезервированный символ согласно RFC 3986 (- _. ~).

0 голосов
/ 09 ноября 2017

Если вы отправляете целые числа, используйте пробелы в качестве разделителя.

0 голосов
/ 12 июля 2017

Вы можете отправить его просто, я использую lodash для сбора идентификатора выбранного продукта

 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
0 голосов
/ 02 декабря 2011

Вы можете использовать трубы "|"в качестве разделителя, но вам придется обрабатывать его на стороне сервера.Не уверен, что это стоит того.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...