2010-09-22 42 views
1

我有以下代碼:getXMLHTTP()問題

<script type="text/javascript" language="javascript"> 
<!-- 
function getXMLHTTP() { //function to return the xml http object 
     var xmlhttp=false;  
     try{ 
      xmlhttp=new XMLHttpRequest(); 
     } 
     catch(e) {   
      try{    
       xmlhttp= new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      catch(e){ 
       try{ 
       req = new ActiveXObject("Msxml2.XMLHTTP"); 
       } 
       catch(e1){ 
        xmlhttp=false; 
       } 
      } 
     } 

     return xmlhttp; 
    } 

    function wait1() 
    { 
     document.getElementById('comment').innerHTML="Please wait...";  
    } 

    function getComment(strURL) {   

     var req = getXMLHTTP(); 

     if (req) { 

      req.onreadystatechange = function() { 
       if (req.readyState == 4) { 
        // only if "OK" 
        if (req.status == 200) {       
         document.getElementById('comment').innerHTML=req.responseText;       
        } else { 
         alert("There was a problem while using XMLHTTP:\n" + req.statusText); 
        } 
       }     
      }    
      req.open("GET", "comment_form.php", true); 
      req.send(null); 
     } 

    } 
//--> 
</script> 

    <div id="comment"> 
<form action="javascript:get(document.getElementById('comment'));wait1()" method="post" enctype="multipart/form-data" > 
<input type="submit" name="Submit" value="Post Your Comment" /> 
</form> 
</div> 

我相信,我用過去一樣順利運行,但現在它似乎並不奏效。我認爲有些東西在那裏搞砸了,但是無法弄清楚。

如果我能得到解決方案,我會很感激。

回答

0

上面的代碼中的一個錯誤,我發現,是:getComment(strURL)函數接受一個從未使用過的參數。 「comment_form.php」應該替換爲函數的參數。而且,由於軟件的軟件,我將strURL更名爲易於閱讀和拼寫的「url」。

(即呈現DIV作爲打開,但不是封閉的,是一個格式化疏忽,我把它。該WAIT1功能是閒置在這兒。)

沒有必要加棄用的「語言」屬性到SCRIPT標籤,也不包含HTML註釋中的任何JS代碼。

function getXMLHTTP() { 
    var x = false; 
    try { 
     x = new XMLHttpRequest(); 
    } 
    catch(e) { 
     try { 
      x = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     catch(ex) { 
      try { 
       req = new ActiveXObject("Msxml2.XMLHTTP"); 
      } 
      catch(e1) { 
       x = false; 
      } 
     } 
    } 
    return x; 
} 

/* TODO: Where is this ever used? */ 
function wait1() { 
    document.getElementById('comment').innerHTML = "Please wait..."; 
} 
function getComment(url) { 
    var req = getXMLHTTP(); 
    if (!req) { 
     // Complain early, instead of nesting deeply 
     alert('Unable to set up the XHR object.'); 
     return; 
    } 
    req.onreadystatechange = function() { 
     if (req.readyState == 4) { 
      // only if "OK" 
      if (req.status == 200) { 
       document.getElementById('comment').innerHTML = req.responseText; 
      } else { 
       alert("There was a problem while using XMLHTTP:\n" + req.statusText); 
      } 
     } 
    }; 
    req.open("GET", url, true); // the "true" stands for "async", when is this not default? 
    req.send(null); // do not add any content (null); when is this not default? 
} 

我在代碼中添加了一些問題。

+0

感謝您的有用信息。並關於未封閉的div和wait1()函數,我很抱歉,因爲我沒有正確發佈它......但我現在編輯它。 – 2010-09-22 10:05:13