xmlHttp.responseText 无返回值:高手请告诉我问题何在?
一个用AJAX检测用户名的简单程序:服务器程序checkUsername.jsp如下:<%Stringusername=request.getParameter("use...
一个用AJAX检测用户名的简单程序:
服务器程序checkUsername.jsp如下:
<%
String username = request.getParameter("username").trim();
if(username.equals("dongdong")){
out.print("failure");
}else{
out.print("success");
}
%>
客户端程序:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>检测用户名</title>
<script language="javascript" type="text/javascript">
function createRequest(){
var xmlHttp = false;
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (error1) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (error2) {
xmlHttp = false;
}
}
}
return xmlHttp;
}
function checkUsername(username){
var checkRet = document.getElementById("checkRet");
checkRet.innerHTML = "请稍候,正在检测用户名...";
var xmlHttp = createRequest();
var url = "checkUsername.jsp?username=" + username;
xmlHttp.open("get",url);
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
if(xmlHttp.responseText=="success"){
checkRet.innerHTML = "恭喜你,该用户名还没有被使用!";
}else if(xmlHttp.responseText=="failure"){
checkRet.innerHTML = "对不起,该用户名已经被占用!";
}
}
}
}
xmlHttp.send(null);
}
</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<label>用户名:
<input type="text" name="uesername" onblur="checkUsername(this.value)" /><div id="checkRet"></div>
</label>
<br/>
<label>性别:
<input type="text" name="sex" />
</label>
</form>
</body>
</html>
网页运行后,一直显示“请稍候,正在检测用户名”,调试后发现HTTP就绪状态正常,但是xmlHttp.responseText返回值为空,所以 checkRet.innerHTML 的值不变。问题出在哪里,请高手指点。 展开
服务器程序checkUsername.jsp如下:
<%
String username = request.getParameter("username").trim();
if(username.equals("dongdong")){
out.print("failure");
}else{
out.print("success");
}
%>
客户端程序:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>检测用户名</title>
<script language="javascript" type="text/javascript">
function createRequest(){
var xmlHttp = false;
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (error1) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (error2) {
xmlHttp = false;
}
}
}
return xmlHttp;
}
function checkUsername(username){
var checkRet = document.getElementById("checkRet");
checkRet.innerHTML = "请稍候,正在检测用户名...";
var xmlHttp = createRequest();
var url = "checkUsername.jsp?username=" + username;
xmlHttp.open("get",url);
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
if(xmlHttp.responseText=="success"){
checkRet.innerHTML = "恭喜你,该用户名还没有被使用!";
}else if(xmlHttp.responseText=="failure"){
checkRet.innerHTML = "对不起,该用户名已经被占用!";
}
}
}
}
xmlHttp.send(null);
}
</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<label>用户名:
<input type="text" name="uesername" onblur="checkUsername(this.value)" /><div id="checkRet"></div>
</label>
<br/>
<label>性别:
<input type="text" name="sex" />
</label>
</form>
</body>
</html>
网页运行后,一直显示“请稍候,正在检测用户名”,调试后发现HTTP就绪状态正常,但是xmlHttp.responseText返回值为空,所以 checkRet.innerHTML 的值不变。问题出在哪里,请高手指点。 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询