日期:2014-05-16  浏览次数:20671 次

jquery使用ajax向后台请求数据时,使用IE访问出现问题
我的前台使用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);
				}
			});