不输入“xmlhttp.onreadystatechange = function(){”

时间:2014-01-11 19:53:05

标签: javascript

我正在关注我的旧问题帖子,我突然输入一个新问题:我的代码没有进入这行“xmlhttp.onreadystatechange = function()”。我还通过标记警报来检查。所以我无法理解有人可以告诉我为什么这不会发生吗?

<html>
    <head>
        <script>

            function changeThis(){

                xmlHttp = new XMLHttpRequest();
                var formInput = document.getElementById('theInput').value; 
                /* formInput will be undefined */
               document.getElementById('newText').innerHTML = formInput;
               /* also undefined */
               //    var xmlHttp = null;

               xmlhttp.onreadystatechange=function() //help
               {
                   alert("y"); // not entering help?????
                   if (xmlhttp.readystate==4 && http.status==200)
                   {
                       document.getElemenById('newText').innerHTML=xmlhttp.reponseText;
                   }
                   if(xmlhttp.status == 404)
                   {
                       var temp = "NO file found";
                       document.getElementById('newText').innerHTML=temp;
                   }
                   xmlHttp.open( "GET", "file2.php", true);
                   xmlHttp.send();   
             }
         }
        </script>
    </head>
    <body>

     <p>You wrote: <span id='newText'></span> </p> 
     <textarea id="theInput" style="height:200px;">Write Here</textarea>
     <input type='button' onclick='changeThis()' value='See what you wrote'/>

    </body>
</html>

1 个答案:

答案 0 :(得分:1)

移动它:

                   xmlHttp.open( "GET", "file2.php", true);
                   xmlHttp.send();

onreadystatechange处理程序之外;在HTTP请求已经取得进展之前,您当前的代码不会尝试提交HTTP请求。 (给judder提示编辑问题以正确缩进代码,使这个问题变得明显。)

编辑添加:此外,正如Pavlo指出的那样,您需要始终如一地写xmlHttp。 JavaScript变量名称区分大小写,因此xmlhttp是一个完全不同的变量。