IE9收到ETag后伪造304
Posted
技术标签:
【中文标题】IE9收到ETag后伪造304【英文标题】:IE9 fakes 304 after receiving ETag 【发布时间】:2012-05-08 10:03:04 【问题描述】:我遇到了 AJAX 和 Internet Explorer 9 的问题:它在收到对初始 etagged GET 的响应后停止轮询我们的服务器。
它假装发出带有响应的请求,例如“响应 HTTP/1.1 304 未修改,状态 200 OK”(是的,一个响应中有两个不同的状态代码)和相同的 ETag(应该随时间变化),但实际上没有一个出现在服务器日志中。
这个问题只出现在 IE 中,同样的代码在 Chrome 和 FF 中运行良好。
也许将 cache: false 传递给 jQuery.ajax() 可能会有所帮助,但我想知道是否有办法在服务器端解决问题。
我们的 ETag 使用可能有错误。
谢谢!
【问题讨论】:
【参考方案1】:我想这篇文章对你有用: http://www.dashbay.com/2011/05/internet-explorer-caches-ajax/
问题在于 AJAX 缓存。无论如何,如果有必要的请求,你应该禁止它。
【讨论】:
看起来服务器响应中的“Expires:-1”标头是我寻找的解决方案。谢谢!以上是关于IE9收到ETag后伪造304的主要内容,如果未能解决你的问题,请参考以下文章