Перенаправление на страницу после вызова Ajax, где в контроллере Spring определяется URL - PullRequest
0 голосов
/ 31 января 2019

На моей странице JSP я делаю запись Ajax на свой контроллер Spring.Я использую данные, которые я публикую, чтобы определить, куда мне следует сделать вызов перенаправления.Поэтому мой код будет выглядеть так:

@RequestMapping(value="/postFromJSP" method={RequestMethod.POST})
public void sendRedirect(HttpServletRequest request,
                         HttpServletResponse response,
                         @RequestBody MyAjaxData data) {

    RestResponse restResponse = determineRedirect(data);

    if (restResponse.getStatusCode()==302) {
       //redirect to URL from response
       Cookie cookie = generateCookie(restResponse.getJson());
       url = restResponse.getJson.getURL();
       response.addCookie(cookie);
       response.sendRedirect(url);
     }
  }

Однако на моей странице JSP, когда я проверяю сетевой трафик, я вижу ответ 307 на мой запрос на перенаправление на указанный URL, и представление нене меняются с моего JSP.

Что я делаю не так?Нужно ли добавлять в Ajax функцию успеха для перенаправления?

1 Ответ

0 голосов
/ 31 января 2019

Измените Spring Controller следующим образом.

 @RequestMapping(value="/postFromJSP" method={RequestMethod.POST})
 public RestResponse sendRedirect(HttpServletRequest request,
                     HttpServletResponse response,
                     @RequestBody MyAjaxData data) {

RestResponse restResponse = determineRedirect(data);

return restResponse ;

}

Обработка ответа внутри функции обратного вызова в .js

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