URL для http GET-запрос обрезается при отправке параметров URL в URL для Http.get - PullRequest
0 голосов
/ 06 февраля 2019

У меня была проблема, когда мой URL был отключен.Я вручную складывал свой URL, как

this.http.get(apiUrl + 'endpoint?filter=' + encodeUri(JSON.stringify(params)).

Это не работало, поэтому я изменил его на работу, как

this.http.get(apiUrl + 'endpoint', {params:filter}).

Вывод из первого метода: http://mydomain/api/endpoint?filter=%7B%22where%22:%7B%22and%22:%5B%7B%22project_id%22:%220232%22%7D,%7B%22floor%22:%22Building%20

Вывод из второго метода: http://mydomain/api/endpoint?filter=%7B%22where%22:%7B%22and%22:%5B%7B%22project_id%22:%220232%22%7D,%7B%22floor%22:%22Building%20#1%7CFloor%20#1%22%7D%5D%7D%7D

Как мы видим, в первом методе пропущено много символов.Выход второго метода - это ожидаемый результат первого метода, но не фактический.Кто-нибудь может объяснить, почему это будет?

1 Ответ

0 голосов
/ 06 февраля 2019

EncodeURIComponent будет кодировать #, encodeURI не будет (и предназначен для получения полного URL-адреса и пропуска первой части перед кодированием).Передача с символом # прервет его раньше.

...