IE 7/8 AJAX缓存怪异

时间:2011-09-01 09:10:55

标签: php jquery ajax internet-explorer caching

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

这里有趣的地方......

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

任何人都知道为什么会这样或更好,如何让IE7 / 8 STOP缓存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); }
});}

3 个答案:

答案 0 :(得分:1)

将动态变量放在url中,就像当前的datetime一样,强制浏览器不要缓存请求和响应。

答案 1 :(得分:0)

这个问题的答案是我在没有打开调试器的情况下在IE中运行console.log()函数。

答案 2 :(得分:0)

如果不能正常工作,将Cache设置为false的另一种方法是更改​​jQuery全局设置。

$.ajaxSetup({
    cache: false
});

如果你使用$ .ajax的$ .get或$ .post扩展

,这也会有所帮助