使用post重定向并获得重定向的成功

时间:2014-09-08 06:16:50

标签: javascript html perl redirect post

说,我的网站上有一个简单的表单,有三个字段:名称,密码和电子邮件。

  1. 我必须从用户那里获取这些信息,并保存在我的数据库中。
  2. 然后重定向到其他网站,并使用发布
  3. 发送所有这些信息
  4. 我还必须知道用户是否已成功重定向到该站点(HTTP STATUS 200)。
  5. 以下是我的表现:

    对于第1点,我只是提交表单。

    在我的数据库中成功保存数据后,我将使用隐藏字段呈现以下表单。这将被提交,用户将被重定向到anotherwebsite.com

        <form id="form_id" action="https://www.anotherwebsite.com/form" method="POST">
        <input type ="hidden" name ="name" value ="$name">
        <input type ="hidden" name ="password" value ="$password">
        <input type ="hidden" name ="email" value ="$email">
        </form>
        <script> document.getElementById('form_id').submit();  </script>
    

    问题

    1. 我认为实现第1点和第2点的策略是正确的。我需要更好的解决方案。提交表单,然后呈现包含隐藏字段的页面并再次提交以重定向到另一个网站,感觉不对。

    2. 我无法获得第三点。

3 个答案:

答案 0 :(得分:0)

根据您的问题,您可以尝试这种方法:

  1. 使用文件(HTML)中的名称,密码和电子邮件字段创建表单。
  2. 将表单提交给服务器。
  3. 在服务器端获取数据(包括变量中的表单属性)并将其保存到数据库中。
  4. 然后重定向到给定的网站(使用您在步骤3中存储的变量)。
  5. 您可以使用任何服务器端脚本语言轻松了解状态(202或任何错误)。

答案 1 :(得分:0)

要实现第3点,如果您实际尝试实施login-cum-membersarea系统,则需要使用cookie。其他,你需要在条件语句中进行重定向。

my $cgi = CGI->new; 
if (condition) { print $cgi->redirect('https://www.examplesite.com/file.html') }

对于第1-2点的一般方法,您可以在这里查看教程: http://practicalperl5.blogspot.com/

答案 2 :(得分:0)

如果您要将用户发送到其他网站,了解该用户已成功重定向的唯一方法是该网站以某种方式通知您。一旦用户离开您的页面(以及重定向是什么 - 它告诉浏览器&#34;保留此URI并转而使用此URI&#34;),该页面上的脚本将停止运行,因此他们无法收集任何进一步的信息。

如果您只需要知道信息已成功提交,您的脚本可以在后台发布数据,等待200响应,然后在提交信息后重定向。但这可能不符合您的要求,因为您仍然不知道重定向是否成功。

的另一种可能性是让您知道正确加载的其他网站上的页面是在新的浏览器窗口/选项卡中打开它而不是重定向。这是在加载其他页面时保持页面活动(因此,您的脚本能够运行)的唯一方法。但是,它引入了其他问题,例如如何处理原始页面。 (在后台保持打开状态(可能会混淆用户)或在看到新URI加载后关闭自身(当一个窗口/选项卡打开然后原始窗口关闭时会导致不合需要的视觉瑕疵;破坏浏览器历史记录)?)

如果可能的话,在交易完成时让最终目的地网站通知您几乎肯定是最佳方式。