最近在工作中遇到了QQ浏览器ajax提交数据,表单数据改变,却后台数据接收数据还是上一次值的问题,但是在其它浏览器中是正常的。

 

代码如下:
$.ajax({
		url : "<%=path%>/secretkey/uploadKey",
		async:false,
		type : 'post',
		data : {
			merKey : $('#merKey').val(),
			keyType : $('#keyType').val(),
			type : $('#type').val()
		},
		success : function(data) {
			if(data.success=='undefined'||data.success==null){
				if(data.indexOf("
")>=0) { window.open('<%=path%>/common/error?type=login', '_self'); } } if(data.success==true) { _alert(data.message); $("#merKey").val(""); $("#keyType").val(""); closeDilog(); }else { _alert(data.message); } } });
经过查看$.ajax发现cache 参数的默认值是true,意思就是默认缓存了整个请求和数据。通过把cache 的值改为false不缓存数据和请求,
再在QQ及其它浏览器测试数据就正常了。

 

代码如下:

 

$.ajax({
		url : "<%=path%>/secretkey/uploadKey",
		async:false,
		cache:false,
		type : 'post',
		data : {
			merKey : $('#merKey').val(),
			keyType : $('#keyType').val(),
			type : $('#type').val()
		},
		success : function(data) {
			if(data.success=='undefined'||data.success==null){
				if(data.indexOf("
")>=0) { window.open('<%=path%>/common/error?type=login', '_self'); } } if(data.success==true) { _alert(data.message); $("#merKey").val(""); $("#keyType").val(""); closeDilog(); }else { _alert(data.message); } } });