Parser fichier .xml

Fermé
none61 Messages postés 82 Date d'inscription mercredi 23 avril 2014 Statut Membre Dernière intervention 14 avril 2020 - 29 mars 2017 à 00:03
none61 Messages postés 82 Date d'inscription mercredi 23 avril 2014 Statut Membre Dernière intervention 14 avril 2020 - 29 mars 2017 à 19:54
Bonsoir à tous,

Je me permet de venir poster sur votre forum ce soir car je me heurte a un problème.


En effet j'ai une page html avc son code javascript qui doit parser un fichier .xml
Lors de mes test en local sur mon Pc tout fonctionnait bien.
Mon souci est que mon fichier .xml est hebergé sur un ipx800 et je n'arrive pas a le parser via le réseaux..

Si quelqu'un pouvait m'éclairer..

je vous joint le code que j'ai utilisé

Cordialement


function loadXMLDoc() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
mafonction(this);
}
};
xmlhttp.open("GET", "http://192.168.1.15/status.xml", false);
xmlhttp.send();
myVar = setTimeout(loadXMLDoc, 2000);
}



function mafonction(xml) {
var x, i, xmlDoc, txt;
xmlDoc = xml.responseXML;
x = "";
x = xmlDoc.getElementsByTagName("led7");
for (i = 0; i< x.length; i++) {
x += x[i].childNodes[0].nodeValue;
}
alert(x)
A voir également:

4 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
29 mars 2017 à 11:25
Bonjour,


Lors de mes test en local sur mon Pc tout fonctionnait bien.
Mon souci est que mon fichier .xml est hebergé sur un ipx800 et je n'arrive pas a le parser via le réseaux

L'ajax ne permet pas (sauf sans de rares occasions mais pas dans ton cas....) de faire du "cross domain".
Tu ne peux donc pas accéder aux données hébergées sur ton IPX800.

Si tu disposes d'un serveur PHP (apache), tu pourrais passer par lui pour aller récupérer les données (en php donc).
En regardant sur le net tu devrais trouver quelques discussions à ce sujet.

1
none61 Messages postés 82 Date d'inscription mercredi 23 avril 2014 Statut Membre Dernière intervention 14 avril 2020
29 mars 2017 à 12:47
Bonjour et merci pour votre réponse,

Il y a quand même quelque chose qui m'échape...

Ce matin j'ai copié collé ma page .html et son script sur mon mac et je l'ai donc ouverte avec safari et là... tout fonctionne correctement..

Pourquoi le fait de parser ne fonctionne pas sur firefox et fonctionne sur safari?

J'ai aperçu sur d'autre forum des problèmes de confidentialité ...
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
29 mars 2017 à 13:13
Depuis ton mac ... Tu as mis le fichier html .... mais le fichier xml est bien celui du IPX ? (tu ne te serais pas trompé et fait le test "local" par hasard ? )

Donc si ça fonctionne vraiment sur ton mac .. il n'y a alors pas de problème de cross domain.
Le mieux serait, dans ce cas, de regarder dans la CONSOLE de ton navigateur (firefox) sil il n'y aurait pas un message d'erreur.

Au cas où (pas sûr de moi sur ce coup la.....) tu peux essayer de voir la propriété
withCredentials en la fixant à true

 xmlhttp.withCredentials = true;
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
29 mars 2017 à 13:43
C'est une question de navigateur et de leurs paramètres de sécurité.
Il est considéré comme potentiellement dangereux de laisser une page web accéder à des ressources fournies par un site tout autre. Certains navigateurs protègent plus leurs utilisateurs que d'autres...

Ce n'est pas le fait de parser qui fonctionne ou non, c'est le fait d'avoir le droit de faire xmlhttp.open("GET", "http://192.168.1.15/status.xml", false);
0
none61 Messages postés 82 Date d'inscription mercredi 23 avril 2014 Statut Membre Dernière intervention 14 avril 2020
Modifié le 29 mars 2017 à 17:56
Merci pour vos réponses,

jordane45, oui je suis sur de moi, mon mac parse bien le fichier .xml de mon ipx800 via le réseaux local.

Et je n'ai absolument pas modifié ma page ...^^


Reivax962 j'ai pu apercevoir sur d'autre forum que certains parlent de problèmes de sécurité.. Aurais-tu une piste pour désactiver cette option? en javascript serait super..

Autre chose quand même... dans ma page je fais une requête vers un relais de l'ipx pour que celui-ci colle ou non et celle-ci fonctionne sur safari ET firefox...

Voici le code

function requette() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
}
};
xhttp.open("GET", uri, true);
xhttp.send();
}
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
29 mars 2017 à 17:55
Si c'est bien une question de droits ..... as tu regardé la fin de mon message ? withCredentials ??
0
none61 Messages postés 82 Date d'inscription mercredi 23 avril 2014 Statut Membre Dernière intervention 14 avril 2020 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
29 mars 2017 à 18:00
Oui j'ai commencé, mais le fait de pouvoir faire ma requête vers mes relais me force a penser que j'ai les droits de faire xmlhttp.open. non?
0
none61 Messages postés 82 Date d'inscription mercredi 23 avril 2014 Statut Membre Dernière intervention 14 avril 2020
29 mars 2017 à 19:54
J'ai testé en rajoutant xmlhttp.withCredentials = true; comme ceci :


function loadXMLDoc() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
mafonction(this);
}
};
xmlhttp.open("GET", "http://192.168.1.15/status.xml", false);
xmlhttp.withCredentials = true;
xmlhttp.send();
myVar = setTimeout(loadXMLDoc, 2000);
}


Mais malheureusement ça ne change rien a mon problème.

J'ai quand même une nouvelle information...

J'ai hebergé ma page sur un serveur apache qui est sur le même réseaux local que l'ipx et là elle ne fonctionne plus même avec safari...
0