2010-04-04 5 views
0

Je rencontre un problème lorsque mon code AJAX ne passe pas l'onreadtstate. Le if (XMLHttpRequestObject) fonctionne bien, mais l'autre partie ne fonctionne pas. Le code est ci-dessous:AJAX problem-onreadystate ne fonctionne pas

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 

Est-ce que quelqu'un a une idée de ce qui peut aller mal?

Répondre

3

Vous n'envoyez jamais votre demande. Le XMLHttpRequest ne fait rien avant d'appeler open() et send() dessus. N'oubliez pas de préfixer vos variables locales avec var lors de leur déclaration. Sinon, ils seront créés comme globaux et des choses désagréables pourraient se produire.

+3

@Matti a raison. Envisagez également d'utiliser une bibliothèque JavaScript tierce telle que jQuery ou Prototype. L'écriture de code spécifique au navigateur est révolue, et ces bibliothèques vous fourniront une interface de programmation qui sera au mieux complètement indépendante du navigateur. – themoondothshine