为了账号安全,请及时绑定邮箱和手机立即绑定

防止jQueryajax调用结果的浏览器缓存

防止jQueryajax调用结果的浏览器缓存

噜噜哒 2019-06-28 16:40:22
防止jQueryajax调用结果的浏览器缓存如果我使用$.get(),结果在浏览器中缓存。在QueryString中添加一些随机字符串似乎可以解决这个问题(我使用new Date().toString()),但这感觉就像一次黑客攻击。还有其他方法可以做到这一点吗?或者,如果唯一的字符串是实现这一目标的唯一途径,那么除了new Date()?
查看完整描述

3 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

我用new Date().getTime(),除非在同一毫秒内有多个请求发生,否则将避免冲突:

$.get('/getdata?_=' + new Date().getTime(), function(data) {
    console.log(data); });

编辑:这个答案已经有好几年了。它仍然有效(因此我没有删除它),但是现在有更好/更清洁的方法来实现这一点。..我的偏好是这,这个方法,但是这,这个如果要禁用缓存,则答案也很有用。每一,每个在页的生存期内请求。


查看完整回答
反对 回复 2019-06-28
?
Helenr

TA贡献1780条经验 获得超4个赞

无论您使用哪种jQuery方法($.get、$.ajax等),以下内容都将阻止所有未来的Ajax请求被缓存。

$.ajaxSetup({ cache: false });


查看完整回答
反对 回复 2019-06-28
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

jQuery的$.get()将缓存结果。而不是

$.get("myurl", myCallback)

您应该使用$.ajax,这将允许您关闭缓存:

$.ajax({url: "myurl", success: myCallback, cache: false});


查看完整回答
反对 回复 2019-06-28
  • 3 回答
  • 0 关注
  • 612 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信