Получение разных URL перенаправления с помощью response.sendRedirect () для аналогичного запроса - PullRequest
0 голосов
/ 23 марта 2020

У меня есть контроллер, который перенаправляет запрос на URL или возвращает представление. URL для доступа к этому контроллеру: https://domain/agreement.htm Проблема в том, что если у меня есть такое выражение, как:

@RequestMapping(method = {RequestMethod.GET, RequestMethod.POST})
public void handleRequest(HttpServletRequest request, HttpServletResponse response)
{
String param1 = ""; //getting from DB
Boolean param2 = (Boolean)request.getSession().getAttribute("SESSION_VALUE"); 
if(StringUtils.isEmpty(param1) || !param2){
    //some line of code
    String target = getNextURL(id);   //returns "/app/accepted.htm"
    response.sendRedirect(target);
}

И целевой URL похож на https://domain/app/accepted.htm. Возможны 4 случая, и их вывод будет таким:

    param1        param2     Redirection
    Empty         false      redirecting properly
    Empty         true       redirecting properly
    "Some value"  false      Not redirecting properly
    "Some value"  true       shows a view

В каждом из вышеперечисленных случаев возвращаемая цель точно такая же. Здесь правильное перенаправление означает, что устройство (iOS 13.4) может перейти к следующему URL, который является https://domain/app/accepted.htm. Но для случая, когда param1 не пуст, а param2 ложен, устройство выдает ошибку Unable to resolve Host и показывает URL-адрес, который является адресом ящика сервера. Для меня совершенно загадка, почему для этого конкретного случая одни и те же строки кода не работают должным образом, когда методы запроса, количество параметров и цель ответа совпадают. Может кто-нибудь помочь взломать это? Очень признателен

Примечание: то же самое прекрасно работает при добавлении с полным URl:

target = "https://domain" + target;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...