我正在使用jQuery从服务器获取一些JSON数据。我正在使用POST动词,但即使在设置了WebMethod CacheDuration属性之后,JSON也不会被缓存。
我用firebug检查了响应头,Cache-Control仍然设置为no-cache。 如何在客户端缓存这些请求,并避免每次都命中服务器。
更新
从scottGu读取此post后,我认为继续使用POST请求是安全的。他的帖子不适用于我试图做的那种操作吗? (从服务器获取数据而不进行修改)。事实上,在将动词更改为GET后,我甚至没有使用Web服务...
答案 0 :(得分:3)
您应该使用get请求。 Post默认不缓存。您可以尝试通过使用.ajax()并将缓存设置为true并键入要发布来缓存帖子。我不能说这会像通常你不希望帖子缓存那样工作。我建议使用get。
E.g
$.ajax( { url: '/bla',
type : 'post',
data : dataObj,
cache : true } );
答案 1 :(得分:1)
如果要使用缓存,请使用GET关键字。 SO上有一个类似的问题。
答案 2 :(得分:0)
我注意到ASP.NET缓存响应的方式存在差异,具体取决于缓存参数是查询字符串参数还是(在我的情况下使用ASP.NET MVC)路由参数。
我从来没有完全弄清楚条件是什么,但这可能对某人有所帮助。