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:
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 :
et enfin ma page sur mon serveur distant :Code:
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 %>
Code:
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 faisque ce soit FireFox ou ie j'ai le xml!Code:alert(xhr_object.responseText);
par contre
la sous ie j'ai 0 et sous firefox j'ai le bon nombre!Code:alert (nb)
j'avais deja eu ce genre de probleme et je l'avais resolu en rajoutant dans ma page sur le mm serveur
donc je l'ai refai mais toujours le mm probleme cette fois ci....Code:Response.AddHeader "Content-Type","text/xml"
D'avance merci de lire ce post qui me parait demesurement long....