xmlHttp.readyState=-2是几个意思?

TatsuyaLMinami 2017-05-01 09:11:21
之前那和帖子问题是js return false后继续执行action,我找了下原因,把 readyState错误码打印出来一看是-2.。。不知道怎么办了,是if else 哪里出错了么?我是新手,希望大家帮帮忙啊!
js:
function checkuser() {
var username = f1.username.value;
var userpassword = f1.userpassword.value;
var xmlHttp;
if(window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttp.open("GET", "com/servlet/ValidateUsernameServlet?username=" + username, true);
xmlHttp.send(null);
xmlHttp.onreadystatechange =function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
if (xmlHttp.responseText == "true") {
document.getElementById("usernameid").innerHTML = "√";
return true;
}else {
document.getElementById("usernameid").innerHTML = "<font color='red'>"+"昵称或密码错误!"+ "</font>";
f1.username.focus();
return false;
}
} else {
alert("错误码:" + xmlHttp.readyState);
f1.username.focus();
return false;
}
}
}
jsp:
<form
id="f1" style=" position:fixed;top:90px;left:415.5px;width:500px;height:250px;"
class="navbar-form navbar-left" role="form" action="<%=basePath %>login" method="put" onsubmit="return checkuser()" >
<!-- <DIV style="background: rgb(255, 255, 255); margin: -100px auto auto; border: 1px solid rgb(231, 231, 231); border-image: none; width: 400px; height: 200px; text-align: center;"> -->
<div class="input-group1">
<span class="input-group-addon">昵称:</span>
<input id="username" name="username" type="text" class="input"
placeholder="1-10个汉字、字母、数字组合" size="31" aria-describedby="basic-addon1" onblur="checkusername()" >
<span id="usernameid"></span>
</div>
<div class="input-group2" id="userpasswordiv">
<span class="input-group-addon">密码:</span>
<input name="userpassword" type="password" class="input"
placeholder="6-12位(必须包含数字及字母)" size="31" aria-describedby="basic-addon1" onblur="checkuserpassword()" >
<span id="userpasswordid"></span>
</div>
<button type="submit" class="btn btn-default" style="position: fixed;top:255px;left:465.5px;width:200px;height:35px; ">登录</button>
</form>
...全文
556 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
TatsuyaLMinami 2017-05-05
  • 打赏
  • 举报
回复
引用 1 楼 pany1209 的回复:
怎么不直接jquery的ajax请求???
我把js改成这样了,现在还是不行,弹出3之后继续提交,能在看看问题出在那哪里么,是不是逻辑有问题? function checkusername() { var username = f1.username.value; if (!(username==null) && !(username=="")) { document.getElementById("usernameid").innerHTML = ""; return true; } } function checkuserpassword() { var userpassword=f1.userpassword.value; if(!(userpassword==null)&& !(userpassword=="")){ document.getElementById("userpasswordid").innerHTML =""; return true; } } function checkuser() { var username = f1.username.value; var userpassword = f1.userpassword.value; if (username==null||username=="") { document.getElementById("usernameid").innerHTML = "<font color='red'>"+"昵称不能为空!"+ "</font>"; f1.username.focus(); return false; } else { document.getElementById("usernameid").innerHTML = ""; f1.userpassword.focus(); if(userpassword==null||userpassword==""){ document.getElementById("userpasswordid").innerHTML ="<font color='red'>" +"密码不能为空!"+ "</font>"; f1.userpassword.focus(); return false; }else { document.getElementById("userpasswordid").innerHTML = ""; $.ajax({ url:'com/servlet/ValidateUsernameServlet', data:{username:username,userpassword:userpassword}, type:'post', success:function(str) { if(str =="true" ){ document.getElementById("usernameid").innerHTML = "√"; alert("2"); return true; }else{ alert("3"); document.getElementById("usernameid").innerHTML = "<font color='red'>"+"昵称或密码错误!"+ "</font>"; return false; } }, error : function() { alert("未知错误!"); return false; }, }); } } }
李德胜1995 2017-05-04
  • 打赏
  • 举报
回复
怎么不直接jquery的ajax请求???
Asp+AJAX静态分页 亲测 可用 http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>Asp+AJAX静态分页</title> <style type="text/css"> <!-- body { text-align:center;font:14px Verdana,sans-serif; } a:link,a:visited { color:#00f;text-decoration:none; } a:hover { color:#f00;text-decoration:underline; } #main { width:450px;background:#f2f2f2;border:1px #999 solid;padding:10px;text-align:left;line-height:150%;margin:0 auto; } #title { width:100%;line-height:30px;border-bottom:1px #999 solid;display:table; } #left { float:left;width:50%;text-align:left;font-size:14px;font-weight:bold; } #right { float:left;width:50%;text-align:right; } #content { width:100%;margin:10px 0;clear:both; } #download { width:100%;margin:10px 0;line-height:150%; } --> </style> [removed] <!-- function createAjax() { //该函数将返回XMLHTTP对象实例 var _xmlhttp; try { _xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); //IE的创建方式 } catch (e) { try { _xmlhttp=new XMLHttpRequest(); //FF等浏览器的创建方式 } catch (e) { _xmlhttp=false; //如果创建失败,将返回false } } return _xmlhttp; //返回xmlhttp对象实例 } function getweblist(page) { //该函数用来获取分页数据 var xmlhttp=createAjax(); //创建变量xmlhttp,并将createAjax()函数创建的对象实例赋于它 if (xmlhttp) { //如果xmlhttp对象创建成功,则执行条件语句中的程序 var content=document.getElementById('content'); //获取页面中id为content的对象 xmlhttp.open('get','server.asp?page='+page+'&n='+Math.random(),true); //打开与服务器的连接,其中get为连接方式,server.asp为要连接的页面,有两个参数,其中第一个参数page为需要返回数据的页数,第二个参数n为一个随机数,这样每次发送的URL都会不一样,相当于都向服务器发出一个新的请求,避免浏览器缓存数据。 xmlhttp.onreadystatechange=function() { //为xmlhttp对象的readyState属性指定事件,改属性值改变时,则会执行其中的程序 if (xmlhttp.readyState==4 && xmlhttp.status==200) { //如果xmlhttp.readyState==4并且xmlhttp.status==200时,执行条件中的程序,其中readyState有五个值,4为请求完成,是客户端向服务器提交的数据成功到达,status有N多值-_-!!,其中200为OK,是指服务器向客户端完成发送数据。 content[removed]=unescape(xmlhttp.responseText); //将服务器返回的数据解码并写入指定的ID中。 } else { content[removed]='正在从服务器提取数据......'; //如果服务器没有完成传送,则向用户提示正在传输。 } } xmlhttp.send(null); //向服务器发送请求,因为是get请求,会直接附在URL后面,所以这里括号中的数据为null,IE中也可以不写,但FF就必须加上null,否则会发送失败。 } } function edit() { //编辑分页显示条数的函数 var str='<form style="margin:0">每页显示 <input type="text" id="pagesize" size="3"> 条 <input type="button" id="savebtn" value="保存" onclick="save()"> <input type="button" id="cancelbtn" value="取消" onclick="rightinfo()"></form>' //定义html字符串 var right=document.getElementById('right'); //获得页面中的right对象。 right[removed]=str; //将str变量的值写入该对象中。 } function rightinfo() { //right对象中的原始信息,请在页面开始和被显示条数被修改后调用 document.getElementById('right')[removed]='<a href="[removed]void(edit())" title="修改每页显示条数">Edit</a>'; } function save() { //保存修改后的显示条数 var pagesize=document.getElementById('pagesize'); //这个就不写了,跟上面的用法一样。 if (pagesize.value==''||/[0-9]+/.test(pagesize.value)==false) { //确定用户输入的新数据是不是一个数字 alert("请正确填写每页显示条数! "); return; } var xmlhttp=createAjax(); //创建对象 if (xmlhttp) { xmlhttp.open('get','set.asp?pagesize='+pagesize.value+'&n='+Math.random(),true) //参上同看 xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById('right')[removed]=unescape(xmlhttp.responseText); //先写入从服务器返回的字符串,如果成功,会写入completed。 getweblist(1); //从新获取新修改后的第一页的数据 setTimeout('rightinfo()',3000); //3秒后将right对象的原始字符串写入。 } else { document.getElementById('pagesize').disabled=true; //将几个FORM表单的元素都设为不可改动 document.getElementById('savebtn').disabled=true; document.getElementById('cancelbtn').disabled=true; } } xmlhttp.send(null); //发送请求。 } } //--> [removed] </head> <body>
Asp+AJAX静态分页
</body> </html>

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧