ajax + fil de syndication Atom
Le
Bul
bonjour à toutes et à tous,
je ne parviens pas à récupérer responseXML, mais
seulement responseText, pour un "fil de syndication Atom",
contrairement aux "fils RSS",
le traitement avec le DOM est donc (?!) "difficile".
j'ai mal compris quelque chose ?
y a-t-il un setRequestHeader à envoyer ?
( j'en ai essayé plusieurs, sans succès )
ou je ne sais quoi
ou alors ? comment, à partir de responseText, traiter
getElementsByTagName("balise"), par exemple ?
extrait de ce que je fais :
( uniquement viable avec IE, sans gestion d'erreurs,
expurgé du reste pour "simplifier" )
<html>
<body>
<script type="text/javascript">
var xml = new XMLHttpRequest();
xml.onreadystatechange = function()
{ if( xml.readyState==4 )
{ // alert(xml.responseXML.xml);
alert(xml.responseText);
}
}
// var url="http://www.codes-sources.com/rss.as...ode";
var url="http://blog.webinventif.fr/atom.php";
xml.open("GET",url,true);
xml.send(null);
</script>
</body>
</html>
xml.responseXML.xml et les url (rss)
http://www.codes-sources.com/rss.aspx?type=code ( et les autres )
: ça baigne, c'est bien le contenu renvoyé.
avec http://blog.webinventif.fr/atom.php (atom)
: seul xml.responseText "répond".
xml.responseXML est "vide"
merci d'avance.
je ne parviens pas à récupérer responseXML, mais
seulement responseText, pour un "fil de syndication Atom",
contrairement aux "fils RSS",
le traitement avec le DOM est donc (?!) "difficile".
j'ai mal compris quelque chose ?
y a-t-il un setRequestHeader à envoyer ?
( j'en ai essayé plusieurs, sans succès )
ou je ne sais quoi
ou alors ? comment, à partir de responseText, traiter
getElementsByTagName("balise"), par exemple ?
extrait de ce que je fais :
( uniquement viable avec IE, sans gestion d'erreurs,
expurgé du reste pour "simplifier" )
<html>
<body>
<script type="text/javascript">
var xml = new XMLHttpRequest();
xml.onreadystatechange = function()
{ if( xml.readyState==4 )
{ // alert(xml.responseXML.xml);
alert(xml.responseText);
}
}
// var url="http://www.codes-sources.com/rss.as...ode";
var url="http://blog.webinventif.fr/atom.php";
xml.open("GET",url,true);
xml.send(null);
</script>
</body>
</html>
xml.responseXML.xml et les url (rss)
http://www.codes-sources.com/rss.aspx?type=code ( et les autres )
: ça baigne, c'est bien le contenu renvoyé.
avec http://blog.webinventif.fr/atom.php (atom)
: seul xml.responseText "répond".
xml.responseXML est "vide"
merci d'avance.

Poser une question


Habituellement, c'est parce que le XML est mal formé, ou que le
Content-type n'est pas bon. Mais là, force est de constater qu'il semble
bien formé
Peut-être est-ce le Content-Type ? C'est le même dans les deux cas
(application/xhtml+xml), mais il me semble que le type devrait être
(text/xml), comme indiqué sur ce blog
la spécification
Un bogue d'IE ?
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
xml.setRequestHeader("Content-type", "text/xml"); ou
xml.setRequestHeader("Content-type", "application/xhtml+xml");
même punition... mais ce n'est peut-être pas ce que tu voulais dire...
et à part me dire d'utiliser un autre navigateur ( mais je ne peux
pas passer outre IE ! ), une solution, une idée pour contourner ?
Cordialement.
var xmlD = new ActiveXObject("Microsoft.XMLDOM");
qui semble fonctionner.
dès que possible, je teste plus avant, voir si tout baigne,
sinon... je reviendrais !
merci à vous.
<html>
<body>
<script type="text/javascript">
var xmlD = new ActiveXObject("Microsoft.XMLDOM");
xmlD.onreadystatechange = function ()
{ if (xmlD.readyState == 4)
{ alert(xmlD.getElementsByTagName("title")[0].firstChild.nodeValue); }
}
// var url="http://logitheque.com/annuaire/dive...xml";
var url="http://blog.webinventif.fr/atom.php";
xmlD.load(url);
</script>
</body>
</html>
ouf... j'ai eu peur.
Cordialement.
Ce n'est absolument pas ce que je voulais dire ;)
XMLHTTPRequest::setRequestHeader est là pour décider du type mime du
message HTTP que tu envoie. Ça ne détermine absolument pas ce que tu vas
recevoir.
De toute façon tu ne pourras pas faire ça avec un Firefox facilement,
car le crosssite-XHR (ça se dit ?) n'est pas autorisé par défaut pour
des raisons de sécurité.
Bon courage.
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org