web-dev-qa-db-ja.com

クエリ文字列でコンマ区切りのパラメータを送信する代わりに

以下のようにクエリ文字列パラメーターを送信しようとしていますが、クエリ文字列でコンマを使用することは有効ではないと思います。パスパラメーターにコンマ区切り文字を使用するより良い方法は何ですか?

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

かなり長くなる可能性のある<a href="/?path=1&path=2&path=3"></a>のように送信したくありません。

12
Freshblood

%2Cを使用できます。これは、,のURLエンコードされた値です。

11
rabusmar

カンマは予約文字であるため、エンコードされていない形式でも使用できます。

このRFCセクションを見てください: RFC 3986-2.2。予約文字

私がこれを理解しているように、それはあなたのサーバーがコンマを含むURLをどのように扱うかに依存します。それを試してみてください。

8
Adrian H.

RFC 3986 (-_ .〜)のように、エスケープされた(または、衒学者の場合はパーセントエンコードされた)値 '、'、または予約されていない文字を使用できます。

3
Bell

整数を送信する場合は、区切り文字としてスペースを使用してください。

0
LaundroMat

簡単に送信できます。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
0
Maksud Alam