为什么这个代码不能正常工作

Why does this code not function correctly?

本文关键字:工作 常工作 代码 不能 为什么      更新时间:2023-09-26

我目前正在学习Ajax,并一直在学习教程。我已经创建了以下脚本:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function MyFunction(){
    var xmlhttp;
    if(window.XMLHttpRequest){
        xmlhttp = new XMLHttpRequest();
    }
    else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
            document.getElementById("MyDiv").innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.open("POST", "command.php", true);
    xmlhttp.send();
}
</script>
</head>
<body>
<button onclick="MyFunction()">Execute</button>
<div id="MyDiv"></div>
</body>
</html>

然后我有一个名为command.php的php文件,它只是呼应了单词"success"。

显然,这个脚本的目的是在单击执行按钮时返回单词"success"。我已经非常准确地遵循了教程,所以我不确定我写的东西有什么问题。

我还看了其他Ajax教程,看看它们可能有什么不同的做法。Ajax的某些变体看起来与其他变体非常不同。我的意思是,很多教程都涉及到看起来像我写的代码,但其他许多教程(如本教程)看起来相当不同,并涉及到许多"$"符号。为什么会这样?

看起来可能是复制/粘贴错误。我猜:

   if(ajaxRequest.readyState == 4){

应该是:

   if(xmlhttp.readyState == 4){

此外,听起来你并不是在使用浏览器开发工具。控制台应该有这样的消息:

Uncaught ReferenceError: ajaxRequest is not defined

我建议阅读您喜欢的浏览器的开发工具。