Javascript-返回(xmlhttp.responseText)不工作
有人能告诉我为什么这不起作用吗? 出于某种原因,我需要更多的文本来编写这段代码。。。我真的看不出这对任何人都有什么好处,但不管怎样,我有更多的文字 这:Javascript-返回(xmlhttp.responseText)不工作,javascript,xml,Javascript,Xml,有人能告诉我为什么这不起作用吗? 出于某种原因,我需要更多的文本来编写这段代码。。。我真的看不出这对任何人都有什么好处,但不管怎样,我有更多的文字 这: if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXOb
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)
{
alert("rS4Xs200");
var string33 = xmlhttp.responseText;
//document.write(xmlhttp.responseText);
return(string33);
}
}
var urlToGet = 'd2/two.php';
alert(urlToGet);
xmlhttp.open("GET",urlToGet,true);
xmlhttp.send();
}
返回:
undefined
它显示为“undefined”的原因是AJAX请求是异步的,因此您的脚本调用AJAXrequestDLC()函数并最终发送xmlHttpp请求,但在启动onreadystatechange函数之前,它会转到包含该函数调用的write命令(因为尚未返回响应)。您可以通过将代码更改为以下内容来验证这一点:
function runAJAX2() {
var result = AJAXrequestDLC();
alert('boom');
document.write(result);
}
您会注意到,“boom”警报出现在代码中onreadystatechange函数中的警报之前,这表明脚本在等待PHP文件的响应时已经移动
编辑:这个答案重写了两次,我仍然有点困惑,所以这里有一个替代的解释:
因为没有定义xmlhttp.responseText。发布您的整个xhr代码。可能还有适用的服务器代码整个脚本:使用提供的代码,我看不出有问题。但是可以使用的代码非常有限。您可以尝试使用我知道可以使用的代码,但是没有更多信息,包括服务器预期返回的内容。我不知道知道我是否可以提供更多帮助。
d2/two.php
返回的数据的MIME类型是什么?它是text/plain
?我不能延迟脚本执行,直到xmlresponse被填满吗?你可以,但这样做的缺点是,由于某种原因,你的php脚本需要很长时间来响应你的脚本(和浏览器)但是,如果你想这样做,这是一个很好的解释:这不是一个php脚本,而是一个html页面:)ajax调用就是它的全部功能,所以我怀疑它可能需要太长时间才能响应。谢谢:)这正是我想要的