先提出解决方案,按照以下方式写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的定义写在方法外,在方法里面也引用不到,(这里不是很懂。)总而言之会出现标题的错误,但改成正确写法后就好了。