避免Jquery Get(AJAX)过程中缓存的有效方法
我遇到了通过Jquery的get创建的Ajax请求的随机缓存 Jquery获取是以最直接的常规方式完成的(路由+参数+回调) 我已经在用了避免Jquery Get(AJAX)过程中缓存的有效方法,ajax,asp.net-mvc,caching,jquery,Ajax,Asp.net Mvc,Caching,Jquery,我遇到了通过Jquery的get创建的Ajax请求的随机缓存 Jquery获取是以最直接的常规方式完成的(路由+参数+回调) 我已经在用了 $.ajaxSetup({cache:false}); 但它似乎并不总是奏效。我了解了ajaxSetup no cache的工作原理,并看到添加的随机参数被添加到我的请求url中 我当前的浏览器是IE 8.0 除了ajaxSetup方式,还有谁知道其他解决方案吗?浏览器本身不允许/无法缓存具有不同参数的请求,正如{cache:false}所添加的那样 这听
$.ajaxSetup({cache:false});
但它似乎并不总是奏效。我了解了ajaxSetup no cache的工作原理,并看到添加的随机参数被添加到我的请求url中
我当前的浏览器是IE 8.0
除了ajaxSetup方式,还有谁知道其他解决方案吗?浏览器本身不允许/无法缓存具有不同参数的请求,正如
{cache:false}
所添加的那样
这听起来像是缓存发生在链中的其他地方,可能发生在web服务器/应用程序中。
使用firebug的“网络”选项卡准确地检查浏览器所请求的内容,以及URL的确切内容,然后从中获取信息。事实证明,我对缓存ajax请求的假设是错误的。 真正的问题是缓存服务器上发生的后续重定向到操作请求(响应原始ajax调用)。 解决方案最终是以下属性
[OutputCache(Location = OutputCacheLocation.None)]
它可以应用于控制器级别或操作级别 你怎么知道它在缓存?你的浏览器不会缓存对不同URL的请求(这是随机参数的目的)。我知道,因为我有在控制器中未命中的断点。请求返回得太快:-)清除浏览器缓存也会使我命中断点。您可以使用Fiddler检查请求,并确保时间戳变量添加到每个请求中(确保cache:false正常工作?我使用的是Asp.Net MVC 3,如果这有什么不同的话。我在下面添加了我的解决方案。)