使用标头位置和IE9缓存重定向时出现问题


Problem with redirecting using header location and IE9 cache

我在IE9中使用PHP头位置时遇到问题。

对于电子商务网站,我使用类似/cart/add/id-of-product.htm(/cart/add/233.htm)的链接将产品添加到购物车中。它后面的页面将产品添加至购物车,并将用户重定向至/cart.htm。在FF中一切都很好。它甚至在IE9中也能工作,直到有人再次尝试将相同的产品添加到车中。IE"认为"他可以直接转到/cart.htm页面,跳过我尝试将产品添加到购物车的代码。不知何故,IE缓存了有关重定向的信息,但为什么?"添加到购物车"按钮后面的链接清楚地显示了链接/cart/add/233.htm,但如果您单击它,它只会跳过页面。。。我试着放一个?r=后面的随机数(/cart/add/233.htm?263663746),但这无关紧要。

有人知道如何避免这种情况吗?我想在用户将产品添加到购物车后重定向用户,但我如何避免IE的问题?

谢谢你抽出时间!

Internet Explorer缓存RFC允许的HTTP/3xx重定向。如果你不想缓存给定的重定向,你需要使用一个HTTP/302,没有未来的Expires或最长期限。您明确不希望使用HTTP/301。

(如果你做得正确,你在URL中放入随机查询字符串的尝试会奏效,但你在那里做了一些错误。)