奇怪的IE7 $ .getJSON ajax调用

时间:2011-02-13 08:22:28

标签: php jquery getjson

我正在使用$ .getJSON来执行对最新数据库更新的ajax调用。 Chrome和Firefox工作正常,但IE7在使用IE7时,服务器会响应我自清除IE7缓存后的第一次更新。

有什么想法吗?

4 个答案:

答案 0 :(得分:2)

可以使用$ .ajax代替这些选项..注意'cache:false':

$.ajax({
  url: url,
  dataType: 'json',
  cache: false,
  data: data,
  success: callback
});

请参阅:http://api.jquery.com/jQuery.ajax/

答案 1 :(得分:1)

我以前经历过这个。您可能希望每次都添加一个不同的新参数。像这样:

var ts = new Date().getTime(); //get the current timestamp
//add the ts as a parameter to your call along with all your other data. 

这样每个请求都不同,IE也不会缓存它。

答案 2 :(得分:0)

IE有一个缓解AJAX调用响应的坏习惯。

在查询字符串中添加一个虚拟参数,每次进行AJAX调用时都会更改,然后您将获得新的结果。

更新:如果您使用Mootools,则可以have this done automatically。查找noCache选项。

答案 3 :(得分:0)

这是缓存的问题,其中IE缓存您的数据,以便后者调用不从服务器获取结果但在IE缓存中

如果您对所有ajax使用jQuery,那么您应首先运行它:

$.ajaxSetup({
  cache: false
});

如果设置为false,它将强制浏览器不缓存请求的页面。