实现功能:在用户登录时获取服务器上的userName.txt文件,检验用户名是否已存在。
userName.txt文件内容:张三;李四;王五;钱六(且分号是英文的),js文件与userName.txt文件放在IIS同一目录中(IIS运行正常)。这样对吗?是放在同一个目录吗?
可能这个问题很简单,这是初学者,在学JS时初学Ajax,多谢指教!!
<!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=""><!--
//定义用于存储XMLHttpRequest对象的变量
var xmlHttp=null;//创建XMLHttpRequest对象
function creatXMLHTTP(){
if(window.ActiveXObject)
{
var arrXmlHttpTypes=['Microsoft.XMlHTTP','MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP'];
for(var i=0;i<arrXmlHttpTypes.length;i++)
{
try
{
xmlHttp=new ActiveXObject(arrXmlHttpTypes[i]); break;
}
catch(ex)
{
alert("创建ajax不成功");
}
}
}
else if(window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}

}

//响应XMLHttpRequest对象变化的函数
function httpStateChange()
{
if(xmlHttp.readyState==4)
{
//获取务服器返回的数据
if(xmlHttp.status==200||xmlHttp.status==0)
{
var userNames=xmlHttp.responseText;
var arrUserName=userNames.split(";");
var bFlag=false;
for(i=0;i<arrUserName.length;i++)
{
     alert(i)
if(arrUserName[i]==myForm.myName.value)
{

//此变量用于判断用户名是否已经存在
bFlag=true;
break;
}
}
var node=document.getElementById("myDiv");
if(bFlag)
{
node.firestChild.nodeValue=("用户然也经存在");
myForm.submitButton.disabled=true;
}
else
{
node.firstChild.nodeValue="用户不存在,可能注册";
myForm.submitButton.disabled=false;
}
}
}
}

//校验用户名是否有效
function checkName()
{ //创建XMLHttpRequest对象
creatXMLHTTP();
if(xmlHttp!=null)
{
xmlHttp.onreadystatechange=httpStateChange;
xmlHttp.open("get","userName.txt",true);
xmlHttp.send(null);
}
else
{
alert("你的浏览器不支持xmlhTTP,请更新浏览器后再进行注册");
}
}

//-->  </script> </head><body>
<div align="center"><strong>用户注册</strong>
<form action="" method="get" name="myForm">
请输入用户名:<input name="myName" type="text" onblur="checkName()"/>
<span id="myDiv" type="hidden" value="" /><br>
请输入登录密码:<input name="password1" type="password" /><br>
再次输入密码:<input name="password2" type="password" /><br>
密码查询问题:<input name="problem" type="text" /><br>
密码查询答案:<input name="key" type="text" /><br>
<input name="submitButton" type="button" disabled value="提交" />
</form>
</div>
</body>
</html>

解决方案 »

  1.   

    其实不管你是在服务器还是本地,是访问程序还是访问静态页面,都是在要你想要的数据,只要这一点达到了,在哪儿都是一样的,这里你要的数据在userName.txt,不管是在本地还是经过IIS访问服务器(远程访问,经过HTTP协议)都是要userName.txt中的数据,唯一需要不同的是URL,你可以现在地址栏中键入URL,只要地址栏能访问得到,AJAX就没问题(要保证数据能被正确的处理,乱码要注意)!
      

  2.   

    嗯,明白,按你这样说,Ajax是没问题,那为什么我上面的代码读不到userName.txt文件的内容呢?多谢指教!!