Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 提交到外部网站,并将网站从重定向提交到另一个页面_Html_Redirect_Web_Submit_External - Fatal编程技术网

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

Html 提交到外部网站,并将网站从重定向提交到另一个页面,html,redirect,web,submit,external,Html,Redirect,Web,Submit,External,我必须有一个网页提交到外部网站。没问题 问题是外部网站显示了一条成功的消息,不是很好,我需要得到它提交的网站被重定向到更用户友好的东西。外部网站不会重定向,我认为这可能是最简单的,如果我给它一个重定向页面 不管怎样,对于最简单、省力的方法有什么建议吗?我读过关于有一个iFRAME的文章。还有别的办法吗 提前谢谢 这些是静态HTML页面。我假设您不能触摸外部站点的标记 如果它们是静态的,你就缺少解决方案。我经常使用cURL库来提供这种在幕后发布到外部站点的功能 您可能可以使用iframe和Java

我必须有一个网页提交到外部网站。没问题

问题是外部网站显示了一条成功的消息,不是很好,我需要得到它提交的网站被重定向到更用户友好的东西。外部网站不会重定向,我认为这可能是最简单的,如果我给它一个重定向页面

不管怎样,对于最简单、省力的方法有什么建议吗?我读过关于有一个iFRAME的文章。还有别的办法吗

提前谢谢


这些是静态HTML页面。

我假设您不能触摸外部站点的标记

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


您可能可以使用iframe和JavaScript来实现这一点。将表单的目标设置为iframe的名称,或者使用CSS隐藏iframe。然后,它就可以提交了。

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

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

也许最好的解决方案是使用IFRAME技术编写标记,但在表单上放置一个“onsubmit”处理程序。如果启用了JavaScript,那么处理程序就可以执行AJAX的工作——换句话说,IFRAME解决方案将起作用

只要记住在启用JavaScript时,在onsubmit属性中添加“return false”,以防止IFRAME提交

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

既然你说外部站点不会重定向,我假设你无法控制它

这意味着我可以想到三种可能的方法

通过您自己的服务器代理请求。这是一个安全的选项,但不会使用第三方网站期望用户提供的任何cookie。 使用iframe并假设它永远不会失败,因为您无法读取结果。它可能会出错或超时,而您无法进行补偿。 使用Java小程序或类似程序,让用户接受一系列可怕的安全警告(如果他们安装了Java插件)
由于它是一个作者无法控制的外部站点,因此任何Ajax方法都会遇到同源策略并失败。不一定——jquery完全能够将返回的标记放入DOM中,以便为决策过程进行解释。