what happened when browser back/forward?
当一个form提交完成以后,点击浏览器的返回按钮,会发现form里的东西依然存在,页面没有刷新。
但是我在form里放了一个隐藏的token,用来防止csrf用的,这个token在页面back的时候,变了,变了。。。
不知道为什么。。。
能美科多缭卡
10 years, 8 months ago
Answers
1.关于token改变的问题
IE8点后退时会触发之前页面的window.onload事件,计数器回到初始状态重新计数;Opera9.6后退时不会触发前一个页面的window.onload事件,但定时器停止运行;其它浏览器后退时都不会触发前一个页面的window.onload事件,定时器会接着之前的状态继续计数。
于是我猜token改变是因为执行了onload事件。
2.关于form里的东西依然存在的问题
Cache-Control取值有如下几个:public,private,no-cache,no-store,no-transform,must-revalidate,proxy-revalidate,max-age
Cache-Control属于http1.1范畴,主流浏览器都支持http1.1,但是貌似只有FF遵守"Cache-Control".
此外,下面提到了如何重置表单,顺便提了一下各浏览器对Cache-Control的响应状况。
不知道这两篇文章能不能解决你的疑问?
个人认为,针对表单这种东西,页面改变之后就应该清空了。。。。//因为我有个添加成员的页面,添加完成之后用的是后退而不是跳转,后来人家向我抱怨之后我才改的跳转/_\
今天天气不错
answered 10 years, 8 months ago