嗨,我是新来的,所以我希望我做对了。我正在阅读 Ajax for Dummies 书(一年前阅读了 php,这很棒,所以试一试),我坚持使用第一个真正的 Ajax程序..我花了很长时间才真正找到文本文件,但是在试图找出问题在程序中的位置时,我注意到了一个我不明白的问题。
在某一时刻,它会检查是否 readyState == 4 AND status == 200,如果为假,那么它会显示“nope”的警报消息——它总是会发出“nope”警报并执行 if 语句的另一部分.. 为什么?(下面列出的是到目前为止我得到的唯一代码 - 没有其他文件可以调用该函数)如果我把“else”语句拿出来它工作正常,但这对我来说以后可能是个问题,我想知道它为什么这样做...非常感谢!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
<title>Ajax at work</title>
<script language = "JavaScript">
var XMLHttpRequestObject = false;
if (window.XMLHttpRequest)
{
XMLHttpRequestObject = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}
function getData(dataSource, divID)
{
if(XMLHttpRequestObject)
{
var obj = document.getElementById(divID);
XMLHttpRequestObject.open("GET", dataSource, true);
XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
{
obj.innerHTML = XMLHttpRequestObject.responseText;
}
else
{
alert("nope");
}
}
XMLHttpRequestObject.send(null);
}
}
</script>
</head>
<body>
<H1>Fetching data with Ajax</H1>
<form>
<input type="button" value="submit" onclick="getData('http://localhost/AV/data.txt', 'targetDiv')">
</form>
<div id="targetDiv">
<p>The fetched data will go here.</p>
</div>
</body>
</html>