IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] ajax IE pas FireFox..?


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Par d�faut [AJAX] ajax IE pas FireFox..?
    Bonjour,
    voila j'ai vu que le sujet a pas mal �t� trait� sur le web, mais ttes les solutions apport�es ne m'eclairent absolument pas donc je me permets de reposer la question pour avoir une reponse personnalis�e...
    Voila j'ai le code suivant :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    function AfficherPays( Culture, Enseigne ) { 
     document.getElementById('departement').style.visibility= 'hidden'; 
    			document.getElementById('btnValider').style.visibility= 'hidden';
    			  document.getElementById('SelectDep').style.visibility= 'hidden';
     
         var xhr_object = false;
     
            if (window.XMLHttpRequest) { // Mozilla, Safari,...
                xhr_object = new XMLHttpRequest();
     
     
     
     
                if (xhr_object.overrideMimeType) {
                    xhr_object.overrideMimeType('text/xml');
                    // Voir la note ci-dessous à propos de cette ligne
                }
            }
            else if (window.ActiveXObject) { // IE
                try {
                    xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch (e) {
                    try {
                        xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    catch (e) {}
                }
            }
     
            if (!xhr_object) {
                alert('Abandon :( Impossible de créer une instance XMLHTTP');
                return false;
            }
     
     
           //xhr_object.open("POST", "test.asp", true);
    	   xhr_object.open("POST", "http://(..)/Site/test/testPays.asp", true)
     
           xhr_object.onreadystatechange = function() {
             if(xhr_object.readyState == 4 ){
    		 	 if (xhr_object.status == 200 ){
            	//alert(xhr_object.responseText);
    			//eval(xhr_object.responseText); 
    			//eval(xhr_object.responseXML);	  
    			//alert(xhr_object.responseXML.getElementsByTagName("IDLANGUE")[0].nodeValue);
    			//reponse = clean(xhr_object.responseXML.documentElement);	
    			//var reponse = xhr_object.responseXML;
    			//document.getElementById('text').value = xhr_object.responseXML.getElementsByTagName("IDLANGUE").item(0).firstChild.nodeValue; 
    			//var xmldoc = xhr_object.responseXML;
    			//var root_node = xmldoc.getElementsByTagName('IDLANGUE').item(0);
    			//alert(root_node.firstChild.value);
    			var nb = xhr_object.responseXML.getElementsByTagName("PAYS").length;
    			document.getElementById('SelectPays').options[0] = new Option("","");
    			for (cpt=0;cpt<nb;cpt++){
    				document.getElementById('SelectPays').options[cpt+1] = new Option(xhr_object.responseXML.getElementsByTagName("LIBELLE").item(cpt).firstChild.nodeValue, xhr_object.responseXML.getElementsByTagName("IDPAYS").item(cpt).firstChild.nodeValue);
            }
    		 }
    		 }
    		 }
     
             xhr_object.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded; charset=iso-8859-15" );
           var data = "Culture=" + Culture + "&Enseigne=" + Enseigne;
               xhr_object.send(data);
            }
    ce code marche parfaitement sous IE mais pas sous FireFox, avec comme vous vous en doutez l'erreur :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Erreur : uncaught exception: Permission refusée d'appeler la méthode XMLHttpRequest.open
    Alors j'ai vu sur des forums comme quoi il fallait etre sur le meme serveur et des open avec des url du type http://...ne fonctionnerait pas, mais cela fonctionne sous IE!!!


    Donc sioupl�, merci vraiument de me renseigner


    car mon but est bien d'envoyer des info sur un serveur distant et de recuperer un xml....

  2. #2
    Membre chevronn� Avatar de yjuliet
    Homme Profil pro
    Consultant en s�curit�
    Inscrit en
    Ao�t 2006
    Messages
    362
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Seine et Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant en s�curit�
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 362
    Par d�faut
    J'ai eu entendu parler de solutions mettant en jeu des iFrames invisibles ouvertes sur le serveur distant, et qui permettent ainsi de faire tes requetes AJAX ailleurs que sur le serveur d'origine de la page ...
    Code exemple : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    <html>
    <body>
     <div id="moncontenu">...</div>
     <iframe style="display: none; visibility: hidden; width:1px; height:1px; border:0" src="http://serveurdistant:port/page_ouvrant_une_connexion_http_sur_le_serveur "></iframe>
    </body>
    Tu peux r�cup�rer par l'iframe le code distant, puis le parser et en faire ce que tu veux ...
    C'est pas hyper propre, mais �a doit marcher ...

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Par d�faut
    c'est gentil mais j'aimerai comprendre pourquoi cela fonctionne parafaitement sous ie et pas sous ff et comment faire pour le faire fonctionner sous ff aussi simplement que sous ie....

  4. #4
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par Alex35
    c'est gentil mais j'aimerai comprendre pourquoi cela fonctionne parafaitement sous ie et pas sous ff et comment faire pour le faire fonctionner sous ff aussi simplement que sous ie....
    Je vais faire mon "Lapalisse" : c'est parce que IE l'autorise et pas Firefox (pb de s�curit�) ....

    A+

  5. #5
    Membre chevronn� Avatar de yjuliet
    Homme Profil pro
    Consultant en s�curit�
    Inscrit en
    Ao�t 2006
    Messages
    362
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Seine et Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant en s�curit�
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 362
    Par d�faut
    Citation Envoy� par Alex35
    c'est gentil mais j'aimerai comprendre pourquoi cela fonctionne parafaitement sous ie et pas sous ff et comment faire pour le faire fonctionner sous ff aussi simplement que sous ie....
    Je te prie de m'excuser, j'ai pr�sum� que tu savais pourquoi, mais que tu cherchais une solution pour contourner ...
    Comme le dit E.Bzz,

    Citation Envoy� par E.Bzz
    c'est parce que IE l'autorise et pas Firefox

  6. #6
    Membre �clair�
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Par d�faut
    non c'est gentil de me proposer des solutions annexes, sincerement, surtout que je vais surment en avoir besoin mais bon je suis perplexe...
    et sinon en jouant le bourrin et en forcant FF a l'accepter :

    about:config
    signed.applets.codebase_principal_support a true

    alors la j'ai en erreur :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Erreur : [Exception... "'Permission refusée d'appeler la méthode XMLDocument.getElementsByTagName' when calling method: [nsIOnReadystatechangeHandler::handleEvent]"  nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)"  location: "<unknown>"  data: no]


    mais sincerement merci de vos reponses

  7. #7
    Membre �clair�
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Par d�faut
    alors la.....
    quand j'envoie ma requete (open) en get et en true, la lorsque je fais une alrte de ma reponseXML :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    alert(xhr_object.responseXML);
    la je recois bien mon xml mais pas moyen de le traiter a cause du getelementbytagname, n'yaurait il pas un equivalent a cela qui fonctionne?

    Sinon pour repartir sur les solutions annexes, celle de l'iframe invisible ne me parait pas tres "propre", n'yaurait il pas d'autres solutions?
    D'avance merci!

Discussions similaires

  1. R�ponses: 2
    Dernier message: 03/09/2010, 13h00
  2. R�ponses: 3
    Dernier message: 19/07/2010, 17h15
  3. [AJAX] Script qui plante IE mais pas Firefox
    Par Booyakha dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 31/05/2006, 18h40
  4. [AJAX] Ajax ne r�actualise pas le javascript ?
    Par shadowbob dans le forum G�n�ral JavaScript
    R�ponses: 8
    Dernier message: 23/01/2006, 08h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo