angularjs $http: изпращане на специални символи в параметър път

Опитвам се да извикам услуга REST, която има специален символ в параметрите на пътя си. Останалият URL адрес изглежда така,

rest\fetchDetails\[1,2,3]

Просто го извиквам с $http като,

$http.get('rest\fetchDetails\[1,2,3]');

Не работи и когато го отстранявам с помощта на firebug, виждам, че URL адресът е изпратен като

rest\fetchDetails\%5B1,2,3%5D

Има ли някакъв начин да изпратите '[' и ']' при извикване на $http повиквания?


person JPS    schedule 26.09.2015    source източник


Отговори (2)


Решение 1:

Опитайте със заявка за публикуване и подайте параметри в Заявка за публикуване.

Решение 2:

'[]' са специални знаци за URL. Така че ще бъде кодирано.

Ако искате да декодирате, това е кодът на вашия сървър, можете да го направите.

person HaRdik Kaji    schedule 26.09.2015

Вие всъщност изпращате „[“ и „]“, но те са url-кодирани по метода $http.get. Url кодирането е необходимо, тъй като HTTP стандартът позволява само някои знаци (буквено-цифрови плюс някои) да бъдат изпращани без URL кодиране.

Между другото, предполагам, че обратните наклонени черти () във вашия URL са обикновени наклонени черти (/), тъй като в противен случай те също биха били URL кодирани.

person Fridjon Gudjohnsen    schedule 26.09.2015