2011-11-18 59 views
0

我有以下场景:双重提交后页面重新加载

第一个网页有一个窗体,确实提交到服务器。 服务器响应第二页。 第二页有一个隐藏的表单,它使用JavaScript在表单加载时提交,它将用户重定向到外部网站。

我的问题是: 是否有可能使用户在第一页上进行两次表单提交(在第一页的一个页面视图中)双提交第二个表单?

这个问题涉及如何在实践中工作,我不需要替代方案。

回答

1

我会忽视这样的事实,即练习不应该被用作生产解决方案。

如果用户浏览器未执行第二个窗体的onLoad()javascript事件,则不会出现您提出的问题。

就像任何这样的解决方案一样,当两个事件几乎同时发生时,客户端浏览器的行为将永远无法100%确定,但在大多数情况下,我会说浏览器不会两次执行onLoad()事件。

你需要注意的是浏览器的后退按钮行为。这肯定会导致重新提交。

1

不,即使第一个表单被双重提交,第二个表单也只会被加载一次。

1

第二种形式不可能发送两次。由于重定向到其他所有页面都是从头开始加载的页面。

我不确定你对问题的解决方法是否正确,虽然你并没有问这个问题,但请记住,用户可以用cmd/ctr按钮多次点击按钮,并多次打开新页面在新标签中。在这种情况下,您的表单将被提交多次。