ホームページ  >  に質問  >  本文

javascript - what happened when browser back/forward?

当一个form提交完成以后,点击浏览器的返回按钮,会发现form里的东西依然存在,页面没有刷新。

但是我在form里放了一个隐藏的token,用来防止csrf用的,这个token在页面back的时候,变了,变了。。。

不知道为什么。。。

大家讲道理大家讲道理2750日前1379

全員に返信(1)返信します

  • 巴扎黑

    巴扎黑2017-04-10 14:53:21

    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的响应状况。

    不知道这两篇文章能不能解决你的疑问?
    个人认为,针对表单这种东西,页面改变之后就应该清空了。。。。//因为我有个添加成员的页面,添加完成之后用的是后退而不是跳转,后来人家向我抱怨之后我才改的跳转/_\

    返事
    0
  • キャンセル返事