IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

XMLHTTPRequest et interception de fichier inexistant


Sujet :

JavaScript

  1. #1
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut XMLHTTPRequest et interception de fichier inexistant
    J'utilise XMLHTTPRequest pour aller piocher dans différents fichiers texte sur le serveur pour construire mes pages...
    A terme je n'aurais pas ce souci car tous les fichiers auquels je fais référence existeront ben sur le serveur, mais pendant la longue et pénible période de saisie de ces @#!§§&## de fichiers texte j'ai des requètes qui pointentent vers des fichiers inexistants...
    comment intercepter le retour de requete vers un fichier inexistant afin de mettre un page "site en construction" .... ??
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    bon voilà où j'en suis mais sans grand succès ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ReqObj.onreadystatechange=function(){ 
    												if(ReqObj.readyState==4){if(ReqObj.status==2){alert("en construciton");
    												                                                                            return false;
    												                                                                            }
    																			What=ReqObj.responseText;
    																			populate(Where,What)
    																			}
    											    }
    il faut attendre le readystate 4 et tester le status à priori d'après mes tests il doit être égal à 2 mais malgré le return false j'ai tout de même un "données introuvables" ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    il te faut tester le statut de la reponse

    voir la doc sur le mode asynchrone
    mais cela est aussi vrai pour le mode synchrone.

    tu obtiens le code de retour HTTP 401, ,403, 404, 405 pour les erreurs les plus courantes. 200 signifit que tout est OK

    en testant cette valeur tu sais si tu a ou pas une bonne réponse.

    personnellement j'ai remplacé les fichiers texte par des fichiers XML
    je peux tester alors en plus de la reponse 200 le fait que le fichier XML est conforme.
    en mode texte j'ai bien une réponse (200) mais qui me dity que j'ai tout ?
    en théorie le 200 suffit mais...

    autre avantage du XML XmlHttRequest le parse seul et construit seul l'Arbre DOM
    tu peux donc utiliser sur la répnse les même méthode que dans tes page.
    maReponse.getElementById("adresse");

    alors qu'il te faut traiter le texte pour en extraire les donnée que tu veux.
    A+JYT

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    j'utilise des fichiers textes simplement parceque je n'ai pas d'editeur XML... et comme j'ai commencé comme ça j'ai pas envie de tout me refader ...

    parcontre j'ai pas bien saisi ton coup du status, la syntaxe donnerait quoi à priori c'est ==404 not found non ??
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    un alert du status me retourne 2 ???? ç'est normal ça ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    ben y'a plus personne ...

    je le récupère ou ce 404 ???

    je tourne en rond avec mon status=2
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    J'ai trouvé ce bout de code mais je n'arrive pas à l'implémenter ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    xmlhttp.open("HEAD", "/faq/index.html",true);
     xmlhttp.onreadystatechange=function() {
      if (xmlhttp.readyState==4) {
       if (xmlhttp.status==200) alert("URL Exists!")
        else if (xmlhttp.status==404) alert("URL doesn't exist!")
         else alert("Status is "+xmlhttp.status)
      }
     }
     xmlhttp.send(null)
    le fait est que je ne cible pas un fichier html mais un fichier txt ...
    le status me retourne 2....
    mais dans le code plus haut même si je fais un teste sur le staus ==2 j'ai tout de même une erreur ...
    Je ne vois vraiment pas pourquoi !!
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    bon ben vu l'enthousiasme général je poursuit mon monologue ...

    je m'aperçoi que le status vaut 0 si la requête s'est bien passé et 2 si il y a eu un problème ????
    c'est parceque je suis en local ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre confirmé

    Inscrit en
    Juillet 2002
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 116
    Points : 514
    Points
    514
    Par défaut
    Pour l'histoire du 0 et du 2, je pense que c'est parce que tu accédes aux fichiers en local et non à travers un serveur web ...

    Sinon pour l'erreur javascript qui se produit une fois qu'on arrive à la fin de la fonction onreadystatechange() ... je pense qu'aprés l'appel de cette fonction, il essaye d'ouvrir un flux pour pouvoir transmettre à la page les data qui sont passé par la fonction send (et ceux même si data est a null) . Mais comme cette page n'a pas pu etre trouvé, le javascript provoque une exception ... (tout ca n'est qu'une supposition)

    En tout cas pour ne plus avoir l'erreur javascript , je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    try { xmlhttp.send(null); } catch(e){}
    Je trouve pas cela super propre mais j'ai trouvé que cela pour pouvoir continuer l'execution du reste de mon javascript contenu dans ma page.

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    tu me sauves la vie !! mille mercis !!

    j'avais pourtant tenté de modifier un bool à false sur le status==2 et de soumettre le send(null) au bool mais sans succès ...

    Comme tu dis c'est pas super propre mais pour le moment et jusqu'a plus ample propreté je vais me contenter de ça ...


    encore merci !

    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    petite précision
    xmlhttp.readyState
    change de valeur au cours du temps
    l'objet xmlhttp existe
    l'url à été ouverte
    la réception est en cours
    la réception est achevé (4)
    je ne me souviens pas des valeurs par coeur. lire la doc


    xmlhttp.status
    est le satut de la réponse et dépends du protocole. donc si tu utilise http
    200 c'est 0K 404 not found
    500 erreur interne (php par exemple)

    A+JYT

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    oui .. enfin faut se méfier du 404, certains hébéregeurs ayant une gestion spécifique et ne renvoient pas un 404 mais une page html ... ce qui est mon cas. j'ai du faire un test sur le responseText afin de savoir si j'avais affaire à mon fichier texte ou à une page html ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #13
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    normalement même s'il renvoient une page elle doit être accompagné du 404.

    mais méfiance effectivement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E] passer fichier inexistant
    Par ferronimus dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 23/04/2007, 14h28
  2. message pour fichier inexistant
    Par antakini dans le forum Access
    Réponses: 4
    Dernier message: 20/12/2006, 11h09
  3. [TIdHttp]Téléchargement d'un fichier inexistant
    Par davels dans le forum Delphi
    Réponses: 22
    Dernier message: 13/09/2006, 15h29
  4. Des fichiers inexistants qui existent pourtant !
    Par iubito dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 07/09/2004, 10h29
  5. [MFC] ouverture en lecture d'un fichier inexistant
    Par bigboomshakala dans le forum MFC
    Réponses: 9
    Dernier message: 07/05/2004, 12h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo