我必须有一个页面提交到外部网站。不是问题。
问题是外部网站显示成功消息,不好,我需要获取提交它的网站以重定向到更用户友好的网站。外部网站不会重定向,如果我将重定向页面传递给它,我认为这可能是最简单的。
无论如何,对于最简单和省力的方法有什么建议吗?我读到有一个 iFRAME。还有其他方法吗?
提前致谢!
这些是静态 HTML 页面。
既然您说“外部站点不会重定向”,我假设您无法控制它。
这意味着你有我能想到的三种可能的方法。
我假设您无法触摸外部站点的标记。
如果它们是静态的,那么您就缺少解决方案。我经常使用 cURL 库来提供这种功能(在幕后发布到外部站点)。
您也许可以使用 iframe 和 JavaScript 来实现。将表单的目标设置为 iframe 的名称(可能使用 CSS 隐藏 iframe)。然后,它应该提交罚款。
IFRAME 解决方案似乎是最简单的,但如果发生错误,您可能不会注意到。
如果要提交的站点返回可预测的标记,那么 AJAX 路由会更可取,因为它允许您的站点解析并响应帖子的结果。但是,它很容易受到禁用 JavaScript 的用户的攻击。
可能最好的解决方案是编写您的标记以使用 IFRAME 技术,但在表单上放置一个“onsubmit”处理程序。如果启用了 JavaScript,则处理程序可以执行 AJAX 操作 - 否则 IFRAME 解决方案将启动。
请记住在启用 JavaScript 时将“return false”添加到 onsubmit 属性,以防止 IFRAME 提交。
<form action="http://external.server/submission.html"
target="id_of_your_IFRAME"
onsubmit="submitViaAJAX(); return false">
... form fields ...
</form>