最近在工作中遇到了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("<title>登录</title>")>=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("<title>登录</title>")>=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); } } });
时间: 2024-10-26 12:05:01