2008-12-29 101 views
6

A 302重定向在信息发布后返回。此重定向用于重新加载当前页面。IE 302重定向无缓存头问题

这一切工作正常,但IE浏览器增加了无缓存的头:

Cache-Control: no-cache 

我们正在利用鱿鱼缓存我们的内容,并把这种在头绕过鱿鱼。
由于此重定向经常使用(这是无法解决的),这大大增加了我们系统的负载。

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

有什么我们可以做的,以阻止IE添加no-cache?

+0

这是否发生在非开发机器上? – Liam 2009-01-28 16:35:36

+0

是的,这是在生产环境 – 2009-07-27 10:40:56

回答

3

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

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

IE的怪癖是当你重定向时,no-cache头被重新添加到重定向的请求中。因此,就你的情况而言,你的重定向请求还会发送POST请求中携带的“no-cache”请求头。

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

-1

听起来像IE中的一个bug给我。 This discussion听起来类似。你也许可以尝试发回301或307的回应,看看它是否有不同的反应。