ajax中readyState的值一直为1和status一直为0,返回的responseText为空的解决方案

先提出解决方案,按照以下方式写ajax提交表单

<form action="post" name="fm1" enctype="multipart/form-data" id="fm1">
  					<div class="h_input"><input type="text" style="border:none;" name="phone" class="hi_input" id="phone" placeholder="输入手机号码"></div>
  					<div class="h_input"><input class="hi_input" name="password"  id="password" style="border:none;" placeholder="输入密码" type="password"></div>
  					<div class="error-mess" style="display: none;"><span class="error-icon"></span><span id="error-message"></span></div>
  					<div class="row">
  						<span><!-- <input type="text" id="rememberMe" checked="checked" type="checkbox" value="true"> --><label for="rememberMe">下次自动登录</label></span>
  					     <span class="forget"><a href="">忘记密码</a></span>
  					</div>
                    <input type="button" onclick="student_reg(this)" class="logging" value="学生登录">
                    <input type="button" onclick="teacher_reg()" class="logging" value="老师登录">

  </form>
<script type="text/javascript">
var form = document.forms.namedItem("fm1");
function student_reg() {
  oData = new FormData(form);
  var oReq=new XMLHttpRequest();
  oReq.open("POST","php2/php2/login.php?method=1",true);
  oReq.onreadystatechange =function(){
                if(oReq.readyState == 4){
                    if(oReq.status == 200){                
                             alert(oReq.responseText);
                   }
                }
            }
  oReq.send(oData);
   
}
</script>

错误写法:

function student_reg() {
  oData = new FormData(form);
  var oReq=new XMLHttpRequest();
  oReq.open("POST","php2/php2/login.php?method=1",true);
  
  oReq.send(oData);
  oReq.onreadystatechange =registration(oReq);
   
}
function registration(xmlHttp){
  alert(xmlHttp.responseText);
  if(xmlHttp.readyState==1&&xmlHttp.status==0){

       if(xmlHttp.responseText!=""){
           alter("success");
       }
     }
}

如果是这种错误或者将oReq的定义写在方法外,在方法里面也引用不到,(这里不是很懂。)总而言之会出现标题的错误,但改成正确写法后就好了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值