下面是源代码:
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)则显示正常
请问如何正常返回文本给函数。
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正常
那赋给变量也不会有问题的
可能是你哪写错了