OVH Cloud OVH Cloud

XMLHttpRequest et readyState

7 réponses
Avatar
unbewusst.sein
j'utilise XMLHttpRequest pour construire un menu dans ma page.

par XHR j'obtiens un menu.xml variable suivant la page appellée, j'y
applique une transfo xslt avant d'insérer le menu effecti dans la page.

l'url du menu est de la forme :

/<dir de la page appellée>/menu.xml

quand la page appellée est de la forme :

/<dir de la page appellée>/<page appellée>.(x)html

dans certains cas (mise au point du site, je n'ai pas de menu.xml dans
le répertoire de la page appellée MAIS après :

httpRequest.open('GET',url,true);
httpRequest.onreadystatechange=function() {
if(httpRequest.readyState == 4) {
alert('loaded url = ' + url);
[...]
}
};

me donne quand même une url chargée quand le fichier n'existe pas.

quel est le test qui me pêrmettrait de savoir quand l'url existe ?

car dans ce cas je voudrais lui substituer une url par défaut :
'/menu.xml'

en résumé, j'ai un :
this.load(xmlUrl, 'xml')

avec xmlUrl='/<dir de la page appellée>/menu.xml'

et je voudrais quand ce chargement échoue (pas de menu.xml à l'endroit
indiqué) lui substituer un menu.xml toujours présent à la racine du
site, soit : '/menu.xml'


--
Artaban de Médée

7 réponses

Avatar
ASM

et je voudrais quand ce chargement échoue (pas de menu.xml à l'endroit
indiqué) lui substituer un menu.xml toujours présent à la racine du
site, soit : '/menu.xml'


http://www.benoitpiette.com/labo/tutoriel-ajax.html#page9

ou voir ici :
http://perso.orange.fr/stephane.moriaux/truc/HttpRequest/v_1/?js
la fonction : alertContents(url)
et sa copine : secours(url)

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Avatar
ASM

ou voir ici :
http://perso.orange.fr/stephane.moriaux/truc/HttpRequest/v_1/?js


et pour tester le fichier absent:
http://perso.orange.fr/stephane.moriaux/truc/HttpRequest/v_1/index_err
menu : [test manquant]

Bon! je n'ai pas de fichier de remplacement si absence, c'est juste pour
voir l'effet du : if (http_request.status == 200)

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Avatar
unbewusst.sein
ASM wrote:

Bon! je n'ai pas de fichier de remplacement si absence, c'est juste pour
voir l'effet du : if (http_request.status == 200)


ouais, OK, merci il suffit de tester le header )))
--
Artaban de Médée

Avatar
ASM
ASM wrote:

Bon! je n'ai pas de fichier de remplacement si absence, c'est juste pour
voir l'effet du : if (http_request.status == 200)


ouais, OK, merci il suffit de tester le header )))


... y a pas,
tu as le chic pour que je ne comprenne pas de quoi tu parles.

Moi j'ai vu :
Common XMLHttpRequest Object Properties ... dont :
status = Numeric code returned by server,
such as 404 for "Not Found"
or 200 for "OK"


--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé


Avatar
unbewusst.sein
ASM wrote:


Moi j'ai vu :
Common XMLHttpRequest Object Properties ... dont :
status = Numeric code returned by server,
such as 404 for "Not Found"
or 200 for "OK"


ouais, c'est ce qu'on appelle les headers... d'une norme HTTP machin
bidule chose...

pas grave ça roule )))

j'ai pigé à partir de status et m^me vérifié son typeof...

--
Artaban de Médée

Avatar
Pierre Goiffon
Une Bévue wrote:
Common XMLHttpRequest Object Properties ... dont :
status = Numeric code returned by server,
such as 404 for "Not Found"
or 200 for "OK"


ouais, c'est ce qu'on appelle les headers... d'une norme HTTP machin
bidule chose...


La liste des status dans la RFC HTTP :
http://www.ietf.org/rfc/rfc2616.txt?number&16
(ne pas se laisser impressionner par l'aridité du document, aller voir
la table des matières à partir du chapitre 10)


Avatar
unbewusst.sein
Pierre Goiffon wrote:

La liste des status dans la RFC HTTP :
http://www.ietf.org/rfc/rfc2616.txt?number&16
(ne pas se laisser impressionner par l'aridité du document, aller voir
la table des matières à partir du chapitre 10)


oui, merci, je ne me souvenais + du n° de ctte rfc !
--
Artaban de Médée