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:
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 :
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 :
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
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
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....
Partager