AJAX 提交后 第一次正常。第2次没反应
IE下第一次正常。第2次没反应。以后都没反应了。。。。
FF下没有任何问题
Chrom下没有任何问题
已经加了时间戳了
服务器端每次都能收到请求。。IE下发送请求正常,但只能响应一次。是不是我JS写的不行啊??
function CK_validateCode(obj){
obj.style.backgroundColor="";
xmlhttp.onreadystatechange=c;
xmlhttp.open("post","checkValidateCode.aspx",true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
var param="validateCode="+$("validateCode").value+"&r="+Math.random();
alert(param);
xmlhttp.send(param);
}
function c(){
if(xmlhttp.readyState==4){
alert("msg");
if(xmlhttp.responseText=="0")
{
$("v5_img").src="../css/accept.png";
}else {
$("v5_img").src="../css/exclamation.png";
}
}
}
[解决办法]
这个是IE下的一个bug, 在IE下就会出现这个问题。
如果你 ajax 的 参数没变的话或者和最近请求参数相同的话,那么IE就不会再次去请求了。
你只要想让 ajax 请求的页面参数 每次不同就可以了。
var a=new Date();
var param="validateCode="+$("validateCode").value+"&r="+a;
//此处将换成时间,则任何时刻都 不同 了,这样就可以保证了
[解决办法]
1、:
xmlhttp.open("post","checkValidateCode.aspx?t="+new Date().getTime(),true);
2、:
function c(){
if(xmlhttp.readyState==4){
alert(xmlhttp.status);//跟踪一下状态值的变化
if(xmlhttp.status==200){
var ret=xmlhttp.responseText;
xmlhttp=null
if(ret=="0"){$("v5_img").src="../css/accept.png";}
else{$("v5_img").src="../css/exclamation.png";}
}
}
}