【问题标题】:IE 7/8 AJAX Cache WeirdnessIE 7/8 AJAX 缓存怪异
【发布时间】:2011-11-08 06:06:36
【问题描述】:

好的,这是一个适合你们的谜题。 我正在研究这个从 PHP Web 服务获取 JSON 并将结果显示到 div 的函数。结果似乎没有显示,或者会让您认为 Web 服务没有输出任何数据或 ajax 调用错误。进一步的调查表明,Web 服务正在输出数据,而 ajax 调用是正确的,并将正确的变量发送到服务。

这就是有趣的地方......

如果我按 F12 并打开控制台,刷新页面,然后单击启动 ajax 调用的链接..等待它...它可以工作!

任何人都知道为什么会发生这种情况,或者更好的是,如何让 IE7/8 停止缓存 AJAX?

哇,我真的很讨厌 IE!

我的代码:

function getActivity(aid, callback) {
var date = new Date(); 
var timestamp = date.getTime();

var params = {
    apiKey: apiDefaults.key,
    service: 'wb_getActivity',
    agencyID: $('#booking-agencyID').val(),
    activityID: aid,
    nocache: timestamp
};

$.ajax({
    cache: false,
    url: apiDefaults.url,
    data: params,
    dataType: 'json',
    type: 'post',
    success: function (json) { console.log(json); callback(json); }
});}

【问题讨论】:

  • 您是否尝试在调用参数中将cache设置为false
  • 是的,没有运气。同样的事情(见代码)。

标签: php jquery ajax internet-explorer caching


【解决方案1】:

在url中放一个动态变量,比如当前日期时间,强制浏览器不缓存请求和响应。

【讨论】:

  • 不起作用,我已经尝试过了,我的 Web 服务中有大量的标头,并在控制台中调用了该功能。
【解决方案2】:

对此的答案是,我在 IE 中运行了 console.log() 函数,而调试器没有打开。

【讨论】:

    【解决方案3】:

    如果这不起作用,另一种将 Cache 设置为 false 的方法是更改​​ jQuerys 全局设置。

    $.ajaxSetup({
        cache: false
    });
    

    如果您使用 $.ajax 的 $.get 或 $.post 扩展名,这也会有所帮助

    【讨论】:

      猜你喜欢
      • 2014-12-22
      • 1970-01-01
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-11
      • 2011-01-22
      • 1970-01-01
      相关资源
      最近更新 更多