我的前台使用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); } });