Перенаправить страницу вне сайта с помощью POST вместо GET в JSF - PullRequest
0 голосов
/ 16 марта 2011

В разделе оплаты нашего веб-сайта я получаю от банка его адрес paymentPage и paymentID.После этого я должен перенаправить браузер клиента на URL банка paymentPage, используя метод POST, а не GET.Просто отметим, что URL-адрес банка paymentPage находится вне сайта, он не связан с нашим сервером.

Я не смог найти умного решения в JSF 1.2 и Spring, которое решает проблему.Одним из тривиальных решений является создание простой страницы jsf со следующим телом (с использованием JavaScript):

<body OnLoad="OnLoadEvent();">
<form action="<%=url %>" method="post" name="form1">
    <input type="hidden" name="PaymentID" value="<%=paymentId %>"  />
</form>
<script language="JavaScript">

function OnLoadEvent() {
   document.form1.submit();
}
</script>

Можете ли вы дать мне какое-нибудь лучшее решение с использованием API JavaServet, JSF и Spring API?

На мой взгляд, в Контроллере у меня есть метод continueToPayment (), где я возьму из ServletContext (или FacesContext) объект Request.Но после этого я понятия не имею, как переадресовать URL paymentPage с помощью метода POST.

PS Похоже, это более общий вопрос.Я нашел похожий запрос для ASP здесь .

1 Ответ

0 голосов
/ 16 марта 2011

Это не имеет ничего общего с JSF, Spring, PHP, ASP или любой другой серверной технологией.

Единственный канал связи между сервером и клиентом - это HTTP-заголовки. И нет заголовка, который бы надежно заставлял современный браузер выполнять перенаправление через POST. Форма с скрытым полем, активируемым Javascript, является единственным выбором.

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