IE 302重定向无缓存标头问题

时间:2008-12-29 16:38:15

标签: internet-explorer caching redirect http-status-code-302

在信息发布后返回302重定向。此重定向旨在重新加载当前页面。

这一切都运行正常,但IE在标题中添加了No-Cache:

Cache-Control: no-cache

我们正在使用Squid缓存我们的内容,并将其放入标题中绕过squid 由于这种重定向经常被使用(没有办法解决这个问题),这大大增加了我们系统的负担。

Firefox没有这个问题,它只是请求重定向页面而不更改标题,这正是我们想要的。

我们可以做些什么来阻止IE添加no-cache吗?

2 个答案:

答案 0 :(得分:3)

魅力。这确实是IE问题,没有直接的解决方法。问题是IE将无条件地向HTTP POST请求添加Cache-Control:no-cache请求头(或者如果你有代理,则为Pragma:no-cache请求头)。

十多年前,这无疑是在IE中引入的,以容纳错误的代理服务器,这些服务器没有正确处理HTTP POST请求,并且会错误地返回缓存的响应。

IE的一个怪癖是,当您重定向时,无缓存标头会重新添加到重定向的请求中。因此,在您的情况下,您的重定向请求还会发送POST请求中携带的“no-cache”请求标头。

不幸的是,没有直接的解决方法。您可以将IE用户重定向到使用JavaScript将其重定向回原始页面的插页式页面。 (不要使用META REFRESH,因为它总是发送无缓存请求。)

答案 1 :(得分:-1)

听起来像IE中的一个错误。 This discussion听起来很相似。您可以尝试发回301或307回复,看看它是否有不同的响应。