好的,这对你们来说是一个很好的谜题。 我正在研究这个从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); }
});}
答案 0 :(得分:1)
将动态变量放在url中,就像当前的datetime一样,强制浏览器不要缓存请求和响应。
答案 1 :(得分:0)
这个问题的答案是我在没有打开调试器的情况下在IE中运行console.log()函数。
答案 2 :(得分:0)
如果不能正常工作,将Cache设置为false的另一种方法是更改jQuery全局设置。
$.ajaxSetup({
cache: false
});
如果你使用$ .ajax的$ .get或$ .post扩展
,这也会有所帮助