前言:Ajax请求时候:

浏览器对:

      GET 方式请求:   默认从缓存中获取数据, 

      POST 方式请求:  默认不会从缓存中取数据,从服务端获取数据

 bug原因:  

        在IE6中 用ajax请求时,如果出现 重复的URL参数无变化,浏览器不会向服务器发送请求,在默认情况下浏览器会针对请求地址,缓存Ajax请求的结果。原因,在缓存过期之前,针对相同地址发起的多个Ajax请求,只有第一次会真正发送到服务端。

解决办法:

    1 :  通过为URL地址添加随机数后缀的方式解决问题,这样就会多了一个一直在变的参数。

 var ran  = Math.random()*10;// 随机数
 var url = "/index.php/recharge/demandRecord/getResult"
 $.ajax({
    type : "get",
    async : false, // 发送同步请求.(默认为true:异步,这也是ajax重要特性
    cache:  true, // 是否读取缓存,默认true,如果为 false,则每次都会向网站服务器请求
    url : "/index.php/recharge/demandRecord/getResult?ran="+ran, // 方式1
    // url : url + "?timeStamp=" + new Date().getTime(), // 方式2
    data : "id="+id,
    dataType:"json",// 返回格式 (与后台商量)
    headers:{
	   'Content-Type':"application/json; charset=utf-8" // json格式
       // 'Content-Type':"application/x-www-form-urlencoded; charset=utf-8" // formdata格式
    },
    beforeSend:function(){
		请求前的处理
	}, 
    success:function(res) {
        $('.record_load_'+id).hide();
        if (res.status == 1) {
           if (res.code === 200) {
               //操作成功,刷新页面
               location.reload();
           }
        } else  if (res.error){
            alert(res.error);
        } else {
            alert('系统异常,请重试或联系技术支持!')
        }
    },              
	complete:function(){
		请求完成的处理
	},
    error: function(e) {}
})               

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐