各位帮我看下最简单的ajax调用问题,运行不起来
服务端的调用运行没有任何问题,就是在AJAX的使用上有问题,代码如下:
根据用户输入的信息获取每个字的拼音首字母,然后再判断得到的字母信息在服务器上是否有目录
<script src="AjaxXml.js"></script>
<form method="POST" action="Admin_Class.asp" name="fm" id="fm">
<INPUT TYPE="hidden" NAME="sPath" Value="/zilia/">
分类名称<input type="text" name="subClsName" size="20" onblur="showInfo('getPY.asp?HanZi='+this.value,document.fm.subClsDir.value);"><hr>
目录名称:<input type="text" id="subClsDir" name="subClsDir" size="20" onblur="showInfo(ifDir.asp?sPath='+document.fm.sPath.value+'&DirName='+this.value,document.getElementById('txtHint').innerHTML);">
<span id="txtHint">*</span><br>
</form>
AjaxXml.js文件代码
var xmlHttp
function showInfo(sUrl,sShow)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("您的浏览器不支持AJAX!");
return;
}
var url=sUrl;
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.setRequestHeader("Content-Type", "gb2312");
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-encoded");
xmlHttp.send(null);
}
function stateChanged()
{
if (xmlHttp.readyState==4)
{
sShow=xmlHttp.responseText;
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
------解决方案--------------------<input type="text" id="subClsDir" name="subClsDir" size="20" onblur="showInfo(
'ifDir.asp?sPath='+document.fm.sPath.value+'&DirName='+this.value,document.getElementById('txtHint').innerHTML);">
少了个单引号'
其他暂时没发现什么
------解决方案--------------------ajax是异步的,有个返回的过程,所以要使用sShow变量的值需要再
回调函数中使用,就是在stateChanged函数中才能用并且xhr的readyState已经为4