Recuperation d'un fichier xml avec une requette http en ASP [Résolu]

Signaler
Messages postés
1
Date d'inscription
vendredi 31 mars 2006
Statut
Membre
Dernière intervention
6 août 2007
-
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
-
Bonjour ,
J'ai un probleme au niveau de lecture d'un fichier xml distant en asp/ajax.
en fait moi j'envoie une requette en 'get' et je recois comme retour un fichier XML sous le navigateur.
moi je veux lire ce fichier , mais j'arrive pas.
voila un ptit code en utilisant ajax mais ca marche pas.
merci beaucoup !!!

function submitForm()
 {
  var req = null;


   if(window.XMLHttpRequest)
   req = new XMLHttpRequest();
  else if (window.ActiveXObject)
   req  = new ActiveXObject(Microsoft.XMLHTTP);
       
     req.onreadystatechange = function()
  {
   document.text.dyn.value="Wait server...";
   if(req.readyState == 4)
   {
    if(req.status == 200)
    {
     document.text.dyn.value="Received:" + req.responseText; 
     
    } 
    else 
    {
     document.ajax.dyn.value="Error: returned status code " + req.status + " " + req.statusText;
    } 
   }
  };
  req.open("GET", "http://www.xul.fr/fichier.xml", true);
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  req.send(null);
 }

merci pour tous

3 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
[déplacé vers javascriptfr]

A mon avis le problème vient du fait que tu essaye de récuperer un fichier qui ne fait pas partie de ton domaine, or les requetes XHR ne sont pas cross domaine, c'est à dire que si ton domaine est toto.com tu pourras pas faire une requete xhr sur tata.com ... on peut bien sur bidouiller son navigateur pour autoriser les requetes cross domaine mais le plus simple consiste à mettre un bridge sur le serveur, c'est à dire que tu fais une page spécial sur ton serveur tu ferras ta requete XHR sur cette page qui à son tour fera la requete sur le domaine final (pas de restriction cross domaine puisque c'est le serveur qui le fait)

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
13
essayes avec
document.text.dyn.value="Received:" + req.responseXML;
au lieu de
document.text.dyn.value="Received:" + req.responseText;
puisque c'est du xml que tu attends
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
13
De toute façon à l'affichage, tu ne verra pas le contenu de ta réponse parce qu'il s'agit d'un arbre dom construit par le navigateur.
tu obtiendras plutôt quelquechose comme
Received : [XML Object]
il faut faire quelquechose comme responseXML.xml avec internet explorer pour avoir une forme lisible