解决IE浏览器ajax get请求只执行一次的问题

解决IE浏览器ajax get请求只执行一次的问题

一、问题描述
1、 使用 ajax get方法请求数据时,直接修改了数据库数据,发现取出的数据没变化,经常反复测试确认发现,该问题只在 IE 浏览器下会发生。 ---- 没错,又是 IE。



二、相关代码参考
    
 $.ajax({
		 url:'/echarts/jsonData',
		 type:'get',
		 dataType:'json',
		 success:function(data){
			dosomething ... 
		 }
	  });

三、问题确定
1、原来是 get 请求在IE浏览器中会被缓存,从第二次请求开始,一直都是请求缓存。
2、参考资料: GET 对比 POST

四、问题解决
1、变更请求方式为post,即: type='post'
2、禁用ajax缓存: cache=false 。(默认 true,开启缓存)
$.ajax({
		 url:'/echarts/jsonData',
		 type:'get',
		 dataType:'json',
		 cache:false,
		 success:function(data){
			dosomething ... 
		 }
	  });
3、请求url后面增加时间戳
var _v=new Date().getTime();
$.ajax({
	url:'/echarts/jsonData?v='+_v,
	type:'get',
	dataType:'json',
	success:function(data){
		dosomething ... 
	}
 });




猜你喜欢

转载自blog.csdn.net/haha_sir/article/details/81019164