У меня есть Spring Boot API (Stateless) с контроллером, который получает запрос POST, извлекает параметры запроса POST, чтобы отправить их через GET моему угловому клиенту. У меня вопрос, можно ли отправлять скрытые параметры в HttpServletResponse.sendRedirect ()?
Пока что у меня есть это, но я не хочу показывать параметры в браузере ...
@RequestMapping(value = "/return", method = RequestMethod.POST, headers = "Accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8")
@ResponseBody
@Transactional
public void returnData(UriComponentsBuilder uriComponentsBuilder, final HttpServletRequest request,
final HttpServletResponse response) throws IOException {
String parameter=request.getParameter("billCode");
response.sendRedirect("http://localhost:4200/payment?parameterOne = "+parameter);
}
Обновлять:
Я не могу использовать HttpSession session = request.getSession(false);, а затем session.setAttribute("helloWorld", "Hello world"), потому что session - это Null
Огромное спасибо!




Вы можете использовать заголовок ответа HTTP вместо отправки параметра в queryString. Пример:
@GetMapping(value = "/")
public void init(HttpServletRequest request, HttpServletResponse response) throws IOException {
String billCode = request.getParameter("billCode");
response.addHeader("parameterOne", billCode);
response.sendRedirect("http://localhost:4200/payment");
}
Чтобы получить значение из запроса:
String billCode = request.getHeader("parameterOne");
Или, если вы получаете из ajax с помощью jQuery:
$.ajax({
url:'/api/v1/payment'
}).done(function (data, textStatus, xhr) {
console.info(xhr.getResponseHeader('parameterOne'));
});
Надеюсь это поможет.
Возможный дубликат Передайте скрытые параметры с помощью response.sendRedirect ()