提交到外部网站,并将网站从重定向提交到另一个页面

时间:2009-05-13 06:29:45

标签: html redirect web submit external

我必须将网页提交到外部网站。不是问题。

问题是外部网站显示成功的消息,不好,我需要将其提交的网站重定向到更加用户友好的内容。如果我将其重定向到页面,外部网站将不会重定向,我认为这可能是最简单的。

无论如何,对此最简单省力的建议是什么?我读过有关iFRAME的内容。还有另一种方式吗?

提前致谢!

这些是静态HTML页面。

3 个答案:

答案 0 :(得分:1)

我假设您无法触及外部网站的标记。

如果它们是静态的,那么你就缺乏解决方案。我经常使用cURL库来提供这种功能(在幕后发布到外部站点)。

您可以使用iframe和JavaScript执行此操作。将表单的目标设置为iframe的名称(可能使用CSS隐藏iframe)。然后,它应该提交罚款。

答案 1 :(得分:1)

由于您说“外部网站不会重定向”,我假设您无法控制它。

这意味着您可以考虑三种可能的方法。

  1. 通过您自己的服务器代理请求。这是安全选项,但不会使用第三方网站期望用户提供的任何Cookie。
  2. 使用iframe并假设它永远不会失败(因为您无法读取结果)。如果没有你能够补偿,它可能会出错或超时。
  3. 使用Java Applet(或类似的),让用户接受一系列可怕的安全警告(如果他们甚至安装了Java插件)

答案 2 :(得分:-1)

IFRAME解决方案似乎是最简单的,但如果发生错误,您可能不会注意到。

如果提交的网站返回可预测的标记,那么AJAX路线将更可取,因为它允许您的网站解析并对帖子的结果作出反应。但是,它对于禁用JavaScript的用户很容易受到攻击。

可能最好的解决方案是编写标记以使用IFRAME技术,但在表单上放置一个“onsubmit”处理程序。如果启用了JavaScript,则处理程序可以执行AJAX操作 - 否则IFRAME解决方案将启动。

只需记住在onsubmit属性中添加'return false',以防止在启用JavaScript时提交IFRAME。

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