Отправить на внешний сайт и отправить сайт с перенаправления на другую страницу - PullRequest
0 голосов
/ 13 мая 2009

Мне нужно отправить страницу на внешний сайт. Не проблема.

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

В любом случае, есть какие-нибудь предложения по наиболее простому и менее сложному подходу к этому? Я читал о том, чтобы иметь рамку. Есть ли другой способ?

Заранее спасибо!

Это статические HTML-страницы.

Ответы [ 3 ]

1 голос
/ 13 мая 2009

Поскольку вы говорите "внешний сайт не будет перенаправлять", я предполагаю, что вы не можете его контролировать.

Это означает, что у вас есть три возможных подхода, о которых я могу подумать.

  1. Прокси-запрос через ваш собственный сервер. Это безопасный вариант, но он не будет использовать файлы cookie, которые сторонний сайт ожидает от пользователя.
  2. Используйте iframe и предполагайте, что он никогда не потерпит неудачу (потому что вы не можете прочитать результат). Это может привести к ошибке или тайм-ауту без возможности компенсации.
  3. Используйте Java-апплет (или аналогичный), и пусть пользователь примет ряд страшных предупреждений безопасности (если у них даже установлен плагин Java)
1 голос
/ 13 мая 2009

Я предполагаю, что вы не можете коснуться разметки внешнего сайта.

Если они статичны, вам не хватает решений. Я часто использовал библиотеку cURL для обеспечения такого рода функциональности (постинг на внешний сайт за кулисами).

Возможно, вы сможете сделать это с помощью iframe и JavaScript. Установите цель вашей формы на имя iframe (возможно, скрыть iframe, используя CSS). Затем он должен представить штраф.

0 голосов
/ 13 мая 2009

Решение IFRAME кажется самым простым, но при возникновении ошибки вы можете не заметить.

Если сайт, для которого отправляется отчет, возвращает предсказуемую разметку, то предпочтительным будет маршрут AJAX, поскольку он позволяет вашему сайту анализировать и публиковать результаты публикации. Однако он уязвим для пользователя, у которого отключен JavaScript.

Вероятно, лучшее решение - написать свою разметку для использования техники IFRAME, но поместить на форму обработчик onsubmit. Если JavaScript включен, то обработчик может выполнять AJAX - иначе будет работать решение IFRAME.

Просто не забудьте добавить 'return false' в атрибут onsubmit, чтобы предотвратить отправку IFRAME, когда JavaScript включен.

<form action="http://external.server/submission.html" 
      target="id_of_your_IFRAME" 
      onsubmit="submitViaAJAX(); return false">
    ... form fields ...
</form>
...