【问题标题】:How to pass `Cache: false` in $.getJSON()如何在 $.getJSON() 中传递 `Cache: false`
【发布时间】:2015-04-13 06:32:49
【问题描述】:

我在 IE 10 中有一个 ajax 调用缓存问题。该解决方案是在 ajax 调用中传递 cache: false。我正面临着这个问题。我怎样才能在其中传递Cache: false

$.getJSON(url , function(data){ //some code here }

【问题讨论】:

标签: javascript jquery ajax backbone.js


【解决方案1】:

试试这样:

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

也就是说,您需要调用 jQuery.ajaxSetup() 方法并将值 false 传递给 cache 属性,这将导致 jQuery 禁用对 ajax 调用的缓存。

正如 Jitesh 回答的here,您可以试试这个:

$.ajaxSetup({ cache: true});
$.getJSON("/MyQueryUrl",function(data,item) {
     // do stuff with callback data
     $.ajaxSetup({ cache: false});
   });

【讨论】:

  • $.ajaxSetup({ cache: true}); 在 $.getJSON() 为我工作之前。谢谢
【解决方案2】:

您不能将任何配置参数传递给$.getJSON。正如documentation 所述,它是一个速记函数:

$.ajax({
  dataType: "json",
  url: url,
  data: data,
  success: success
})

所以您可以只使用该代码,然后设置cache: false 或使用$.ajaxSetup 全局设置它。

【讨论】:

  • 但请不要使用$.ajaxSetup为未来的 Ajax 请求设置默认值。不推荐使用它.
【解决方案3】:
$(document).ready(function() {
  $.ajaxSetup({ cache: false });
});

或者:

$.ajax({
    type: "GET",
    cache: false,
    url: "yourURL",
    //other settings
    success: function(data) {
      //do something with data
    }
});

【讨论】:

    【解决方案4】:
    JSONObject  jsobj = new JSONObject();
    JSONArray  jsobjs = new JSONArray();
    

    我遇到了类似的问题。我尝试了上述所有建议,但问题仍未解决。然后我发现在我的 servlet 类中,我在类级别声明了两个对象。我将这些声明移到了 doPost() 方法中。 问题得到解决。 !!!

    【讨论】:

      猜你喜欢
      • 2013-08-22
      • 1970-01-01
      • 1970-01-01
      • 2012-11-03
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      • 2012-01-04
      • 2017-02-06
      相关资源
      最近更新 更多