2011-02-17 35 views
2

1)我看到一个关于这个问题的面试问题,我认为这与表单提交和避免双重提交有关。有人能证实这一点吗?这是“Reload safe”网页的含义,可以通过Ajax实现吗?

2)假设这个假设是正确的,这可以用Ajax来完成吗?如果有,有人可以指向我的链接? (我假设你会生成某种随机数并将其作为隐藏字段包含在表单中,然后确保该数字在会话之前未提交)。

+0

这是我正在考虑的J2EE Synchnronizer令牌设计模式。我在Erwin Vervaet的Spring Webflow书中读到了它。请参阅:http://www.javaworld.com/javatips/jw-javatip136.html – JGFMK 2011-02-17 12:14:16

回答

0

Redirect-after-post是一种避免用户刷新或使用后退按钮返回发布表单的问题的技术。简而言之,不是为HTTP帖子提供响应页面,而是在其重新加载时触发另一帖子,您发出303 redirect(或302,通过利用与网络一样古老的bug来支持古代浏览器) 。这会导致浏览器发出第二个HTTP请求 - 这次是获取 - 如果重新加载的响应页面不应该有任何问题。只要确保所有更改都是由帖子处理程序完成的,并且您重定向到的页面没有任何副作用。

如果您使用XMLHttpRequest发布,则会遵循重定向;除非你使用hash part of the location或新的HTML5 history methods特别支持它,那么后退按钮和重新加载不会再次触发AJAX帖子。

+0

您可以详细说明1)'位置的哈希部分'还是2)新的HTML5历史记录方法? – JGFMK 2011-02-17 12:03:28

相关问题