js xmlhttp 返回 undefined

下面是源代码:
function loadXMLDoc(url,postContent)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
return xmlhttp.responseText;
}
}
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(postContent);
}

上面的函数返回undefined,如果在函数体内使用alert(xmlhttp.responseText)则显示正常
请问如何正常返回文本给函数。

xmlhttp.responseText只是内部函数的返回而已
loadXMLDoc 函数本身没有返回追问

如何将xmlhttp.responseText得到的值返回到loadXMLDoc

追答

需要新建个函数来处理结果,拆分下

function parseResult(res) {
alert(res);

}

function loadXMLDoc(url,postContent)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
parseResult(xmlhttp.responseText);
}
}
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(postContent);
}

追问

用alert(xmlhttp.responseText);在loadXMLDoc()函数体内是可以正常显示的,但是却无法将值赋予给loadXMLDoc(),估计应该是需要用到其他的东西将数据转换一下才能返回。

同样的情况出现在asp中,xmlhttp.responseText得到的数据也是不能直接被使用的,需要用adodb.stream对象处理过后才能正常显示文本,但是在js我不知道该怎么做。

追答

loadXMLDoc 用来访问url

parseResult 用来处理访问结果

把你想在 loadXMLDoc 中处理返回结果的动作放到 parseResult 中处理
这样不行么?

追问

我需要对得到的值进行判断,不是以alert();方式使用,这个值无法被放入到变量之中,然而alert();弹出来的窗体却能正常显示,你可以将xmlhttp.responseText;得到的数据放在一个变量中,当你使用变量的时候却发现该变量为undefined,得不到值。

追答

xmlhttp.responseText 是个字符串

能alert正常
那赋给变量也不会有问题的
可能是你哪写错了

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网