我的前台使用jquery的ajax向后台请求数据,当我更新或删除一条数据时,后台再将更新后的数据返回给前台显示,使用chrome浏览器进行访问时没有任何问题,但使用IE时就出现了问题,返回给前台的数据根本没有更新。通过好长时间的搜索才知道这是由于IE缓存的问题,ie是根据请求的url是不是一样来是否发送请求,对于同一请求,ie只发送一次http请求,所以同一请求发送多次,但ie实际是不会发送的。
解决该问题一个简单办法是不缓存ajax请求,
方法一:在jquery中设置:
$.ajaxSetup ({
cache: false //close AJAX cache
});
方法二:在发送ajax请求时设置cache为false:
$.ajax({
type:"POST",
url:"recycleEmails.action",
data: {ids:selectedItems},
dataType: "json",
cache:false,
success: function (result) {
$(".content-box-content").html(result);
}
});
方法三:在请求的url或数据里添加时间戳,如下:
$.ajax({
type:"POST",
url:"recycleEmails.action?timestamp=" + new Date().getTime(),
data: {ids:selectedItems},
dataType: "json",
success: function (result) {
$(".content-box-content").html(result);
}
});
或者:
$.ajax({
type:"POST",
url:"recycleEmails.action",
data: {ids:selectedItems,timestamp:new Date().getTime()},
dataType: "json",
success: function (result) {
$(".content-box-content").html(result);
}
});