response.sendredirect не работает во внешнем приложении - PullRequest
0 голосов
/ 27 мая 2020

Response.sendRedirect (URL) НЕ работает, когда я звоню из внешнего приложения. Я работаю над двумя корпоративными приложениями параллельно.

Приложение A: http://localhost: 9080 / ab c

Приложение B: http://localhost: 8080 / xyz

Angular Приложение, которое получает ответ от приложения B: http://localhost: 9000

В настоящее время я нахожусь в приложении A и делаю вызов AJAX в приложение B . Когда служба попадает в App-B RestController, я хочу перенаправить на http://localhost: 9000 в браузере из RestController из App-B.

Я пробовал следующий подход в RestController приложения -B, но это не работает. Тем не менее, URL-адрес браузера - http://localhost: 9080 / ab c, который указывает на приложение-A:

@RequestMapping(value = "/redirect", method = RequestMethod.GET)
public void method(HttpServletResponse httpServletResponse) {
    httpServletResponse.setHeader("Location", "http://localhost:9000");
    httpServletResponse.setStatus(302);
}

@RequestMapping(value = "/redirect", method = RequestMethod.GET)
public ModelAndView method() {
    return new ModelAndView("redirect:http://localhost:9000");
}

@RequestMapping(value = "/redirect", method = RequestMethod.GET)
public void method(HttpServletResponse httpServletResponse) {
    httpServletResponse.sendredirect("http://localhost:9000");
}

Мне нужно передать данные из приложения-A в приложение- B перед запуском приложения angular. Итак, я звоню по номеру AJAX из приложения A. Я не могу напрямую вызвать приложение Angular из App-A с передаваемым параметром запроса. Мне нужно передать данные через заголовок или тело запроса. Не могли бы вы помочь с этим?

1 Ответ

0 голосов
/ 27 мая 2020

Ответ перенаправления на запрос ajax не вызывает автоматического перенаправления страницы. Вам нужно вручную запустить перенаправление в обработчике ответа.

См. Перенаправление после Ajax публикации .

...