浏览器返回按钮返回问题_html/css_WEB-ITnose
程序员文章站
2022-06-07 22:39:00
...
最近在做一个模拟电商网站。
其中有不少重复提交的问题。注册页面的重复提交我已经解决了,但是订单页面的重复提交还在探索中。
这个问题主要是由浏览器的后退按钮引起的,就是当我已经提交订单之后,如果不小心按了后退按钮,然后又按了提交一次,会不会重复提交。
我这边想要避免这个问题,于是去看了当当网是怎么做的。我发现很有意思的是,当我成功提交订单后,浏览器的返回按钮,会将页面返回到购物车,而非订单页面。而我查看当当的订单页面,也发现了,订单页的地址栏是这样的:
http://checkout.dangdang.com/checkout.aspx?shop_id=0#dd_refer=http%3A//shopping.dangdang.com/shoppingcart/shopping_cart.aspx
这里最后的这串字符串,就是购物车的地址嘛。我想问一下,当当是不是就是通过这种方法,避免了浏览器后退到订单页面会重复提交的问题?有木有哪位大侠能帮我解释一下这个地址的意思?
我不需要禁用浏览器退后按钮的方法,那个方法我网上已经找到很多了,我希望有大神能帮我解释一下当当网的这种做法。谢谢了!
其中有不少重复提交的问题。注册页面的重复提交我已经解决了,但是订单页面的重复提交还在探索中。
这个问题主要是由浏览器的后退按钮引起的,就是当我已经提交订单之后,如果不小心按了后退按钮,然后又按了提交一次,会不会重复提交。
我这边想要避免这个问题,于是去看了当当网是怎么做的。我发现很有意思的是,当我成功提交订单后,浏览器的返回按钮,会将页面返回到购物车,而非订单页面。而我查看当当的订单页面,也发现了,订单页的地址栏是这样的:
http://checkout.dangdang.com/checkout.aspx?shop_id=0#dd_refer=http%3A//shopping.dangdang.com/shoppingcart/shopping_cart.aspx
这里最后的这串字符串,就是购物车的地址嘛。我想问一下,当当是不是就是通过这种方法,避免了浏览器后退到订单页面会重复提交的问题?有木有哪位大侠能帮我解释一下这个地址的意思?
我不需要禁用浏览器退后按钮的方法,那个方法我网上已经找到很多了,我希望有大神能帮我解释一下当当网的这种做法。谢谢了!
回复讨论(解决方案)
1,可以采取ajax提交
2,可以在提交之后使用Response.Redirect到一个页面
3,禁止浏览器缓存页面
服务端控制一下跳转,比如在订单页面时,若发现该订单已处理过,那就跳转到购物车
感谢各位,不好意思结贴晚了,一直给忘了。
最后我用了wzs_xyz提供的方法,虽然我觉得用ajax也不错。
上一篇: Access字符串处理函数整理
下一篇: SHOPXX转换为Oracle