JS: Как сохранить место в URL - PullRequest
0 голосов
/ 17 мая 2018

Я использую Angular 4, и в моем сервисе у меня есть api для удаления с 2 строками в качестве параметров, подобных этому

this.http.delete(this.url + 'api/v1/ReportingService/collectionID/'+ '45902' +'/'+'ReportName/' + 'my report 2012:21:24.810419' + '/DeleteReport', { headers: this.headers })
    .map(this.extractResponse)
    .catch(this.handleError);

Параметр имени отчета содержит пробелы.Я знаю, что в URL не может быть пробелов.Когда я вызываю api, пробелы заменяются на% 20.Таким образом я попытался заменить пробелы на '' и пробелы на 20, оба способа.Но я должен сохранить пробелы, так как имя отчета будет храниться в базе данных с пробелом, поэтому у меня должен быть пробел в API.Как решить эту проблему?

1 Ответ

0 голосов
/ 17 мая 2018

Кодировка процента является частью RFC 3986 , которая описывает синтаксис универсального идентификатора ресурса (URI). Вы должны жить с этим и декодировать строку на стороне сервера, прежде чем вставить ее в базу данных.

Если серверная часть реализована с использованием JavaScript, вы можете использовать функцию decodeURI () в строке.

decodeURI('a%20b%20c') // result: 'a b c'

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

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