如何在$.getJSON()中传递`Cache: false`参数

4

我在IE 10中遇到了一个ajax调用缓存问题。解决方法是在ajax调用中传递cache: false。但我遇到了一些问题。如何在其中传递Cache: false

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

可能是如何在JQuery中为getJSON设置缓存false?的重复问题。 - Mysteryos
https://dev59.com/tXVC5IYBdhLWcg3wihmv#358083 - Ash Burlaczenko
谢谢您指出我已经检查过的内容,但是没有人具体回答如何在$.getJSON中传递cache: false - Aamir Shahzad
1
@AamirShahzad:在$.getJSON中不能传递cache:false。 - Rahul Tripathi
4个回答

7
尝试这样做:

像这样尝试:

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

即,您需要调用jQuery.ajaxSetup()方法,并将false值传递给cache属性,这将导致jQuery禁用ajax调用的缓存。
如Jitesh在这里所回答的那样,您可以尝试这样做:
$.ajaxSetup({ cache: true});
$.getJSON("/MyQueryUrl",function(data,item) {
     // do stuff with callback data
     $.ajaxSetup({ cache: false});
   });

1
$.ajaxSetup({ cache: true}); 在使用 $.getJSON() 前对我有用。谢谢 - Aamir Shahzad

3

你不能向$.getJSON传递任何配置参数。正如文档所述,它是一个简写函数,对应的完整函数如下:

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

因此,您可以直接使用该代码,然后设置cache: false或者使用$.ajaxSetup进行全局设置。


4
但是,认真地说,请不要使用$.ajaxSetup:为未来的Ajax请求设置默认值。不建议使用它。 - Erik Philips

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

OR:

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

-1
JSONObject  jsobj = new JSONObject();
JSONArray  jsobjs = new JSONArray();

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

问题得到解决!!!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接