读书人

各位帮小弟我看上最简单的ajax调用有关

发布时间: 2013-01-04 10:04:12 作者: rapoo

各位帮我看下最简单的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

读书人网 >Ajax

热点推荐