AJAX - 没有得到简单的php响应(返回“undefined”)

时间:2013-11-30 04:21:08

标签: javascript php ajax

我不知道为什么xmlhttp.response在联系php文件后返回undefined。

的index.php

    <script language="Javascript">
    var countdown;
    countdown = setInterval(function(){

        var xmlhttp;
        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(xmlhttp.responsetext);
            }
        }
        xmlhttp.open("GET","updateindex.php?id=8",true);
        xmlhttp.send();
    },3000);

    </script>

updateindex.php

    <?php
    echo "hi";
    ?>

它应该每隔3秒发出“hi”警告,但每隔3秒警告“未定义”。

2 个答案:

答案 0 :(得分:3)

注意responseText中的大写字母T.所以它应该是xmlhttp.responseText

答案 1 :(得分:0)

在javascript中,“undefined”表示您尝试访问的变量未定义,即它不存在。当你看到它时,你应该立即检查拼写错误。在这种情况下, xmlhttp.responsetext应为xmlhttp.responseText。您选择的小写属性不存在。

在Chrome和Safari等WebKit浏览器中(我确信在其他浏览器中,但这些是我使用的浏览器),您还可以在控制台中检查变量名称。 Google如何在浏览器中使用开发人员工具。当您在现在引用对象上的属性时遇到问题,将对象名称输入/记录到控制台通常会很有帮助,然后会显示所有属性的列表。例如,如果您向脚本添加console.log(xmlhttp),它将在控制台中显示对象及其所有属性,您可以看到所需的属性为responseText,而不是responsetext