日期:2014-05-17  浏览次数:20511 次

浏览器返回按钮返回问题
最近在做一个模拟电商网站。
其中有不少重复提交的问题。注册页面的重复提交我已经解决了,但是订单页面的重复提交还在探索中。
这个问题主要是由浏览器的后退按钮引起的,就是当我已经提交订单之后,如果不小心按了后退按钮,然后又按了提交一次,会不会重复提交。
我这边想要避免这个问题,于是去看了当当网是怎么做的。我发现很有意思的是,当我成功提交订单后,浏览器的返回按钮,会将页面返回到购物车,而非订单页面。而我查看当当的订单页面,也发现了,订单页的地址栏是这样的:
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到一个页面
------解决方案--------------------
服务端控制一下跳转,比如在订单页面时,若发现该订单已处理过,那就跳转到购物车