1

在 Firefox 12 上,当我连续请求两个具有相同 URI 但具有不同请求标头(不同接受字段)的资源时,响应是第一个请求的缓存响应。第一个请求是正确返回的页面的 text/html 请求,第二个请求是这样的:

请求的 URL 是:http://localhost:8080/test/带有这些标头:

响应标头

Content-Type text/html;charset=ISO-8859-1
日期 Sun, 29 Apr 2012 19:41:53 GMT
服务器 Apache-Coyote/1.1

请求标头

Accept application/json
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.5
Connection keep-alive
Cookie JSESSIONID=DB75F9F730D72D040CB5781903B60E87
Host localhost:8080
Referer http://localhost:8080/test/
User-Agent Mozilla/ 5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0 X-Requested-With XMLHttpRequest

你有什么建议可以避免这个问题吗?提前致谢。

4

3 回答 3

1

如果您的服务器根据不同的 Accept 标头发送不同的内容,它应该发送“Vary: Accept”以告诉缓存 Accept 标头需要成为缓存键的一部分。你的服务器是这样做的吗?

于 2012-04-30T03:26:27.313 回答
0

cache:false$.ajax({...})参数中使用。这会向查询字符串添加一个随机值,以确保不会发生缓存。

于 2012-04-29T20:03:28.470 回答
0

使用以下行将缓存 false 应用于使用 jquery 发出的所有 ajax 请求

$.ajaxSetup({ cache: false });

ajaxSetup的更多选项

于 2012-04-29T20:09:11.037 回答