XmlHttpRequest IE7

Résolu
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 - 10 oct. 2007 à 22:38
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 - 12 oct. 2007 à 22:06
Salut à tous,

j'ai toujours utilisé XmlHttpRequest avec IE-6 sans problème mais avec IE-7, j'ai sur la méthode open() le message suivant :
Droits insuffisants (si j'utilise new XmlHttpRequest())
ou un msg du même type (quant  j'utilise new ActiveXObject('ect...')

Que faut-il donc faire pour que IE-7 accepte mon code ?

Pour info je suis admin et les composants additionnels sont autorisés.

Merci pour vos suggestions.

6 réponses

cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
12 oct. 2007 à 13:23
aucune idée.

j'ai une erreur ici : This.xmlHttpReq.send('p1=param1&p2=param2');
xmlHttpReq a la valeur Null ou n'est pas un objet

quelques pistes : http://msdn2.microsoft.com/en-us/library/ms537505.aspx
ils disent qu'il faut activer la prise en charge native de XmlHttpRequest dans ie7

Essayes dans le sens inverse, crées d'abord l'objet avec les ActiveX, puis si ça ne fonctionne pas avec la méthode native.
3
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
11 oct. 2007 à 11:01
un petit bout de code qu'on voit ce qui se passe ?
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
11 oct. 2007 à 21:40
Bien sur :


Mais il n'y a pas vraiment d'erreur puisque sous IE-6 cela marche très bien.

function xmlHttpPost(strURL)
{
   var xmlHttpReq = false;
   var This = this; // ref à 'cette' instance
   
   if( window.XMLHttpRequest ){
         xmlHttpReq = new XMLHttpRequest();
   }
   else if( window.ActiveXObject ){
         xmlHttpReq = newActiveXObject
('Microsoft.XMLHTTP'); // msxml2 testé aussi
   }
  
   xmlHttpReq. open ('POST', strURL, true); // PROBLEME CI
   xmlHttpReq.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
   
   /* event réponse */
    xmlHttpReq.onreadyStateChange = function(){
    switch(This.xmlHttpReq.readyState)
    {
     case2:
      updatePage('Requete envoyée au serveur...
', This.xmlHttpReq.readyState);
      break;
     case 3:
      updatePage('Téléchargement de la réponse...
', This.xmlHttpReq.readyState);
      break;
     case 4:
      updatePage('
' + This.xmlHttpReq.responseText, This.xmlHttpReq.readyState);
      break;
     default:
      updatePage('Traitement en cours...
', This.xmlHttpReq.readyState);
    }
   }
   
   This.xmlHttpReq.send('p1=param1&p2=param2');
  }  

// maj page web
function updatePage(str, state)
{
   if( state == 1 )
      document.getElementById('result').innerHTML = "";
   document.getElementById('result').innerHTML += str;
   if(state == 4)
   {
           // on se sert de la réponse pour faire ce qu'on veut
   }
}

<!--le formulaire-->
<form>
>
</form>
<!-- le div reponse -->
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
12 oct. 2007 à 15:23
C'est ce que j'ai fait, j'ai utilisé les 3 versions, activeX et autres.
Les 3 sont instanciés par new sans problème.
Ca bloque sur le open().

L'url en localhost poserait elle un problème ?

Sinon merci pour ton interet.

ps : Bien sur avec le framework AJAX et son énorme toolkit, aucun problème, tout marche bien mais vu qu'on fait la même chose avec 10 lignes de javascript...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
12 oct. 2007 à 16:00
en local ca fonctionne aussi bien même sans serveur local (file:///...)
Y'a un truc qui colle pas dans ton code mais aucune idée d'ou ça peut venir. Un peu déroutant comme erreur
affiches l'objet resultant du new pour être sur
Essayes en GET
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
12 oct. 2007 à 22:06
OK, ça marche.

Après avoir déchiffré la doc, il apparait que IE-7 gère l'objet this (l'instance en cours) de manière native.
Il suffit d'enlever toutes les références à This.
Apparemment lorque l'on fait plusieurs requetes sur le même objet, IE-7 s'en sort bien tout seul.

A plus...
0
Rejoignez-nous