2014-10-10 60 views
1

我正试图让这个简单的请求工作,但我没有太多的运气。 我有服务器文件夹中的“test.txt”文件作为包含下面提供的脚本的html文件。XMLHttpRequest无法正常工作 - 无错

我在Chrome,Firefox和IE11中查看了相同结果的文件。我只能从html页面看到“html页面中的初始文本”。没有错误和我的test.txt文件中的文本没有得到显示。

任何人都可以请指出我的代码是什么问题?

<!DOCTYPE html> 
<html> 

<head> 

    <script type="text/javascript"> 

    var xmlHttp = createXmlHttpRequestObject(); 

    function createXmlHttpRequestObject(){ 

     var xmlHttp 

     if(window.XMLHttpRequest){  
      xmlHttp = new XMLHttpRequest(); 
     } 
     else{   
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     return xmlHttp: 
    } 

    function process(){ 

     if(xmlHttp){ 
      try{     
       xmlHttp.open("GET","test.txt", true);    
       xmlHttp.onreadystatechange = handleServerResponse;    
       xmlHttp.send(null); 
      } 
      catch(e){ 
       alert(e.toString()); 
      } 
     } 
    } 

    function handleServerResponse(){   

     output = document.getElementById('output'); 

     if(xmlHttp.readyState==1){ 
      output.innerHTML += "Status 1: server connection established <br />" 
     } 
     else if(xmlHttp.readyState==2){ 
      output.innerHTML += "Status 2: request received <br />"  
     } 
     else if(xmlHttp.readyState==3){ 
      output.innerHTML += "Status 3: server processing <br />"  
     } 
     else(xmlHttp.readyState==4){ 

       if(xmlHttp.status=200){ 
        try{ 
         text = xmlHttp.responseText; 
         output.innerHTML += "Status 4: request is finished and response is ready<br />" 
         output.innerHTML += text; 
        } 
        catch(e){ 
         alert(e.toString()); 
        } 
       } 
       else{ 
        alert(xmlHttp.statusText); 
       } 
     } 
    } 

    </script> 
</head> 

<body onload="process()"> 
    Initial text in the html page..<br> 
    <br> 

    <div id="output"> 
    </div> 

</body> 



</html> 
+1

两件事情,使确定你用'var'开始了你的变量声明,然后你尝试在浏览器的调试器中设置断点?在铬只是按住shift-cntrl-i拉起开发工具 – 2014-10-10 13:17:33

+0

@Jared史密斯 - 感谢您的提示。我深入了解它并发布了一个决议作为答案。 – BustedSanta 2014-10-10 13:22:37

回答

0

好吧,我想通了....

这是一个错字,一个ommision

return xmlHttp: -> should be ; instead 

,忘了 “其他”

else(xmlHttp.readyState==4){ -> should be else if (xmlHttp.readyState==4){