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

ASP Discussion :

xml request ff pas ie


Sujet :

ASP

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 xml request ff pas ie
    Bonjour,
    je ne sais pas si je suis dans le bon forum etant donné que je melange js et asp m'enfin je test!

    Ma problematique est d'aller chercher des info sur un serveur distant, que je rapatrie sous la forme d'xml!
    donc j'envoie mes données sur une page de mon serveur qui lui se charge d'aller interroger une autre page et me renvoie mes données...
    Page principale:

    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
    66
    67
    68
    69
    70
    71
    function AfficherDepartement( Culture, Enseigne, IdPays ) { 
     
     		//on efface tous pour recommencer
    			document.getElementById('departement').style.visibility="visible";
    			document.getElementById('btnValider').style.visibility="visible";
    			 document.getElementById('SelectDep').style.visibility= 'visible';
    		document.getElementById('dep').length=0;
    		var noeud=document.getElementById('test');
    		while (noeud.childNodes.length>0) {
      			noeud.removeChild(noeud.firstChild);
    		};
    	
          var xhr_object = null;
    
            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", "../test/testDepLocal.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("DEPARTEMENT").length;
    			 alert (nb)
    			for (cpt=0;cpt<nb;cpt++){
    				document.getElementById('dep').options[cpt] = new Option(xhr_object.responseXML.getElementsByTagName("CODE").item(cpt).firstChild.nodeValue+" - "+xhr_object.responseXML.getElementsByTagName("LIBELLE").item(cpt).firstChild.nodeValue, xhr_object.responseXML.getElementsByTagName("IDDEPARTEMENT").item(cpt).firstChild.nodeValue);
            }
    		 }
    		 }
    		 }
            
            xhr_object.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded; charset=iso-8859-15" );
           var data = "Culture=" + Culture + "&Enseigne=" + Enseigne + "&IdPays=" + IdPays;
               xhr_object.send(data);
            }

    ensuite la page sur le meme serveur :
    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
    <%@LANGUAGE="VBSCRIPT"%>
      <% 
      Response.AddHeader "Content-Type","text/xml" 
      Dim Culture, IdEns, IdPays
    Culture =  Rtrim(Request.Form("Culture"))
    'response.write "culture" + Culture
    IdEns = Request.Form("Enseigne") 
    IdPays = Request.Form("IdPays")
     thisURL = "http://(...)/Site/test/testDepLewis.asp?Culture=" & Culture & "&Enseigne=" & IdEns & "&IdPays=" & IdPays 
    
     ' Création de l'objet XML
     Set GetConnection = CreateObject("MSXML2.ServerXMLHTTP")
     
     ' Connection à l'url spécifiée
     GetConnection.Open "GET", thisURL, false
     GetConnection.Send 
    
     ' ResponsePage contient la réponse du serveur	
    if GetConnection.status = 200 and GetConnection.readyState = 4 then
     ReponsePage = GetConnection.responseXML.xml
    
    ' Nous écrivons alors le contenu de la variable
    ' afin d'afficher le contenu récupéré
     Response.write (ReponsePage)
     end if
     Set GetConnection = Nothing
     %>
    et enfin ma page sur mon serveur distant :
    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
    <%@LANGUAGE="VBSCRIPT"%>
    <!-- #include File="../Includes/DS_OPEN_BASELEWIS.asp"-->
     
    <%	 
    Response.AddHeader "Content-Type","text/xml"
    dim Culture, IdEns, IdPays
    Culture = RTrim(Request.Querystring("Culture"))
    IdEns = Request.Querystring("Enseigne")
    IdPays = RTrim(Request.Querystring("IdPays"))
    strReponse = "<?xml version='1.0' encoding='iso-8859-15'?><REPONSE><SERVICE>DEPARTEMENT</SERVICE><IDLANGUE>" & Culture & "</IDLANGUE><IDPAYS>" & IdPays & "</IDPAYS><IDENSEIGNE>" & IdEns & "</IDENSEIGNE><LISTEDEPARTEMENT>"
    strQueryDep = "SELECT * FROM [vue-SOC-DepartementPaysEnseigne] WHERE IdLangue='"&Culture&"' and IdEnseigne="&IdEns&" and IdPays='"&IdPays&"' "
    'strQueryDep = "SELECT * FROM [vue-SOC-DepartementPaysEnseigne] WHERE IdLangue='fr-FR' and IdEnseigne=2 and IdPays='fr'"
     
    objRS4.Open strQueryDep
    while not objRs4.EOF
    	strReponse = strReponse + "<DEPARTEMENT><CODE>"&objRS4("Code")&"</CODE><LIBELLE>"&objRS4("Libelle")&"</LIBELLE><IDDEPARTEMENT>"&objRS4("IdDepartement")&"</IDDEPARTEMENT></DEPARTEMENT>"
    	objRS4.movenext
    wend
    objRs4.Close
    strReponse = strReponse +"</LISTEDEPARTEMENT></REPONSE>"
    response.write (strReponse)
    	'response.write( "document.getElementById('SelectPays').options['" & cpt & "'] = new Option('" & objRS("langue_id") & "','" & objRS("langue_lib") &"');")	
    %>

    et le truc c'est lorsque je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     alert(xhr_object.responseText);
    que ce soit FireFox ou ie j'ai le xml!
    par contre
    la sous ie j'ai 0 et sous firefox j'ai le bon nombre!

    j'avais deja eu ce genre de probleme et je l'avais resolu en rajoutant dans ma page sur le mm serveur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.AddHeader "Content-Type","text/xml" 
    donc je l'ai refai mais toujours le mm probleme cette fois ci....

    D'avance merci de lire ce post qui me parait demesurement long....

  2. #2
    Membre chevronné
    Avatar de malbaladejo
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2002
    Messages : 379
    Par défaut
    J'ai eu le même genre de problème et en analysant le flux http avec fiddler j'ai vu qu'il y avait 2 content-type dans le header.
    Le 2em Content-Type est bien modifié en mettant Response.AddHeader "Content-Type","text/xml" dans la page appelée.
    Mais je n'ai jamais réussi à modifier le premier Content-Type.
    Je pense qu'il est fixé par IIS.

    Bref, selon que le navigateur prend le 1er ou le 2em Content-Type, ca marche ou ca ne marche pas, et bien sur IE et FF ne font pas la meme chose.

  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
    merci mais il n'y a donc pas moyen??

    EDIT: car ce que je ne comprend vraiment pas c'est que j'ai eu le meme probleme juste avant et le faite de rajouter

    Response.AddHeader "Content-Type","text/xml"

    me l'a résolu du moins sous ie car sous firefox il fonctionnait de tte façon

  4. #4
    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
    bon en fait ce que j'en ai vu c'est que le probleme ne viendrait pas des headers car lorsque je modifie ma requete sur mon serveur distant de tel sorte qu'il ne me renvoie qu'un seul enregistrement ou deux pour construire mon flux xml, la cela fonctionne sous ie....
    Par consequent y a t il une limitation sous ie de la taille des flux????

  5. #5
    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
    bon apres encore mure reflexion ce n'est absolument pas un probleme de taille de flux mais d'encodage, sous ie il connait pas un caractere, il n'affiche rien! ff lui remplace par un ?

    siouplé quelqu'un peut il me renseigner la dessus?

Discussions similaires

  1. [AJAX] [XmlHttpRequest] [XML] [Request]
    Par sbernard dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/11/2006, 17h08
  2. pb de syntaxe XML ne reconnais pas les données ..
    Par lolodelp dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 19/06/2006, 11h24
  3. [débutant][xml][dotnet] sgbd xml ou c pas la peine ???
    Par just1980 dans le forum XQUERY/SGBD
    Réponses: 2
    Dernier message: 30/03/2006, 16h26
  4. Réponses: 13
    Dernier message: 06/03/2006, 15h25
  5. [Flash][XML] Possible ou pas ?
    Par JohnBlatt dans le forum Flash
    Réponses: 1
    Dernier message: 31/01/2006, 01h25

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