为什么这段代码无法正常运行?

时间:2016-05-13 21:44:04

标签: javascript php jquery ajax

我目前正在尝试学习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”。我已经非常准确地遵循了这个教程,所以我不确定我写的内容有什么问题。

我还查看了其他Ajax教程,看看他们可能做了哪些不同的事情。似乎Ajax的某些变体看起来与其他变体非常不同。我的意思是,很多教程涉及代码看起来像我写的,但许多其他(如this one)看起来相当不同,并涉及许多'$'标志。这是为什么?

1 个答案:

答案 0 :(得分:3)

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

   if(ajaxRequest.readyState == 4){

应该是:

   if(xmlhttp.readyState == 4){

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

Uncaught ReferenceError: ajaxRequest is not defined

我建议您阅读首选浏览器的开发工具。