有人可以告诉我为什么这不起作用? 出于某种原因,我需要更多的文本来代替这些代码...不能真正看到这对任何人都有什么好处,但不管有什么更多的文字......
这:
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
答案 0 :(得分:0)
它显示“未定义”的原因是因为AJAX请求是异步的,因此您的脚本调用AJAXrequestDLC()函数并最终发送xmlHttpp请求,然后在onreadystatechange之前继续执行包含该函数调用的write命令函数被触发(因为尚未返回响应)。您可以通过将代码更改为以下内容来验证这一点:
function runAJAX2() {
var result = AJAXrequestDLC();
alert('boom');
document.write(result);
}
您会注意到代码中onreadystatechange函数中的警报发出“繁荣”警报,表示脚本在等待PHP文件的响应时已继续运行。
编辑:重复两次这个答案,我仍然有点困惑,所以这里有另一种解释: