在后退按钮上显示"网页已过期"

mko*_*yak 12 http-post

当用户点击后退按钮时,浏览器要求显示无处不在的"此页面已过期"消息的要求是什么?

有哪些用户友好的方法可以防止用户在webapp中使用后退按钮?

Ste*_*ham 11

好吧,默认情况下,无论何时处理表单POST,然后用户点击然后刷新,他们都会看到指示浏览器正在重新提交数据的消息.但是如果页面设置为立即过期,那么他们甚至不必点击刷新,当他们回击时他们会看到页面已过期消息.

要避免这两个消息,有几件事要尝试:

1)使用表格GET代替.这取决于你正在做什么,但这并不总是一个好的解决方案,因为GET请求仍有大小限制.信息在查询字符串中传递,这不是最安全的选项.

- 要么 -

2)在表单POST后执行服务器端重定向到不同的页面.

看起来类似的问题在这里得到了回答:

在POST之后使用303重定向以避免"网页已过期":如果有多于GET请求可以处理的字节,它是否会起作用?

作为第三种选择,可以防止用户回到他们的浏览器中.我唯一觉得有必要这样做是为了防止他们做一些愚蠢的事情,比如付两次钱.虽然有更好的服务器端方法来处理它.如果您的站点使用会话,则可以通过首先在结帐页面上禁用缓存并立即将其设置为过期来阻止他们支付两次.然后你可以利用存储在会话中的某种标志,如果你再回到它会实际改变页面的行为.