2010-04-04 49 views
0

我有一個問題,我的AJAX代碼沒有通過onreadtstate。 if(XMLHttpRequestObject)工作正常,但其他部分沒有。代碼如下:AJAX問題 - onreadystate不起作用

enter code here function 
//Get the Ajax Object 
getXmlHttpRequestObject() { 

if (window.XMLHttpRequest && !(window.ActiveXObject)) { 
    XMLHttpRequestObject= new XMLHttpRequest(); 
    return XMLHttpRequestObject; 
} 
else if (window.ActiveXObject) { 
    try{ 
    XMLHttpRequestObject=new ActiveXObject("Msxml2.XMLHTTP"); 
    return XMLHttpRequestObject; 
    }catch(exception1){ 

     try{ 
      XMLHttpRequestObject= new ActiveXObject("Microsoft.XMLHTTP"); 
      return XMLHttpRequestObject; 
     }catch(exception2){ 

     }//end exception 2 
    }//end exception 1 
}//end if else 
else{ 
document.getElementById('ajax_status').innerHTML='Status: Cound not create XmlHttpRequest Object.' + 
'Consider upgrading your browser.'; 
} 
    }//end function getXmlHttpRequestObject() { 

    function loadJavascript(src, url){ 

XMLHttpRequestObject=getXmlHttpRequestObject(); 

if(XMLHttpRequestObject){ 
    //an alert will work here 
    XMLHttpRequestObject.onreadystatechange = function() 
    { 
     alert("Here"); 
        //Nothing at this pint works  
     if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { 
      includeJavaScript(sId, url, oXmlHttp.responseText); 
     } 
    } 

} 
}//end LoadJavaScript 

有沒有人有什麼可以出錯的想法?

回答

3

您永遠不會發送您的請求。在您調用open()send()之前,XMLHttpRequest不會執行任何操作。

另外,不要忘記在聲明它們時用局部變量的前綴var。否則,他們將被創建爲全球性和討厭的事情可能發生。

+3

@Matti是對的。另外考慮使用第三方JavaScript庫,如jQuery或Prototype。編寫瀏覽器特定的代碼已經過去了,這些庫將爲您提供最好完全獨立於瀏覽器的編程接口。 – themoondothshine 2010-04-04 15:24:29