如何在JQuery中为getJSON设置cachingfalse?

我正在使用getJSON从服务器端获取结果,但面临浏览器caching问题。 我想caching是假的。 我试图在我的getJSON调用之前使用它。

$.ajaxSetup({ cache: false }) 

但是我没有得到预期的结果。 它仍然显示旧的结果。 任何帮助将不胜感激。

我还确定了一些其他解决scheme,如使用.ajax,但我真的不想使用它。

你的代码只需要一个触发器来启用它。

这将允许您在将来的所有ajax中禁用caching

 $(document).ready(function() { $.ajaxSetup({ cache: false }); }); 

希望它有助于:)

你可以使用这个,这将全局禁用caching:

 $(document).ready(function() { $.ajaxSetup({ cache: false }); }); 

或者,而不是$.getJSON ,只为这样的请求禁用caching:

 $.ajax({ cache: false, url: "/path/to.json", dataType: "json", success: function(data) { ... } }); 

semente的和bonesnatch的答案是正确的,但是如果你想使用$ .getJSON和其他地方利用它的caching(你不想为所有的调用将caching设置为false),但是你想要仅仅为了单次调用,您可以将时间戳注入$ .getJSON()的data属性中。 通过向请求的查询string添加一个唯一值,请求将始终是唯一的,不会被浏览器caching – 您将始终获得最新的数据。

长版本:

 var ts = new Date().getTime(); var data = {_: ts}; var url = '/some/path.json'; $.getJSON(url, data); 

全部在一个版本中:

 $.getJSON('/some/path', {_: new Date().getTime()}); 

两者都会导致以下请求:

 /some/path.json?_=1439315011130 

最后的数字是代码被调用时的时间戳,因此总是唯一的。