Закодированная косая черта (% 2F) в параметре запроса вызывает сбой перенаправления в Angular Application - PullRequest
0 голосов
/ 13 июня 2018

В моем угловом приложении мне нужно сделать GET-вызов серверу Tomcat.Для этого вызова GET требуются параметры запроса, которые также могут содержать специальные символы, такие как «+», «/», «/ +». Для вызова GET используется угловой контроллер с использованием $ window.open с целевым значением «_blank»

В настоящее время перенаправление не выполняется без какой-либо кодировки.

Итак, я добавил кодировку в файл .js до вызова GET с использованием encodeURIComponent.

Затем я добавил логику декодирования, используя URLDecode.decode в Java-коде бэкенда для декодирования параметров запроса.

Но все равно это не работает.

Работает только в том случае, если я дважды кодирую параметры запроса в файле .js, используя дважды кодировкуURIComponent.

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

1 Ответ

0 голосов
/ 16 августа 2018

Сделано это, добавив * в путь путь в app.js.Добавление звездочки означает, что запрос будет включать несколько параметров пути, разделенных /, и поэтому angular не будет пытаться кодировать / в запросе.
Двойное кодирование также может работать, но тогда должна быть логика на стороне сервера.изменен, чтобы дважды декодировать параметры запроса и заменить %2B2F на %2F

...