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] probleme avec open


Sujet :

JavaScript

  1. #1
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut [xmlhttprequest] probleme avec open
    y a-t-il des contraintes sur l'utilisation de XmlHttpRequest ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <html>
    <head>
    <script language="javascript">
    function start() {
        var url = document.getElementById("url").text;
        return send(url,"","GET");
    }
     
    function send(url,data,method) {
        var xhr = null;
        if (window.XMLHttpRequest) {
                xhr = new XMLHttpRequest();
        } else {
            alert ("xmlhttprequest non supporte");
            xhr = false;
        }
        xhr.onreadystatechange = function() {
                    // On ne fait quelque chose que si on a tout revu et que le serveur est ok
                    if ((xhr.readyState == 4) && (xhr.status == 200)) {
                            alert(xhr.responseText);
                            return xhr.responseText;
                    }
            }
               alert ("xhr cree "+xhr);
     
            if (method == "POST") {
                    xhr.open("POST",url,true);
                    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                    xhr.send(data);
            } else {
                    if (data == "") {
                            xhr.open("GET",url,true);
                    } else {
                            xhr.open("GET",url+'?'+data,true);
                    }
                    xhr.send(null);
            }
    }
    </script>
    </head>
     
    <body>
    <input id="url" type="text" />
     
    <br/><br/>
     
    <div id="page"></div>
     
    <br/><br/>
     
    <a href="javascript:start()">commencer</a>
     
    </body>
     
    </html>
    et ça m'envoie l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    uncaught exception: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIXMLHttpRequest.open]" nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)" location: "JS frame :: file:///home/gorgonite/ensta/ppl/js/test.html :: anonymous :: line 0" data: no]

    Edit: j'ai mis l'url http://www.google.fr

  2. #2
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Salut... .. .

    Premier problème dans ton code... pour l'instanciation de ton objet tu semble oublier IE... vas voir là...

    http://www.developpez.net/forums/sho...d.php?t=155685

    Sinon deux posibilitée... la première c'est qu'il semblerait que Firefox prefere un monObjet.send(''); plutot qu'un monObjet.send(null);... la seconde possiblilité bien que moins probable c'est que les requetes soient trop rapprochées... si c'est ça il faut mettre en place un systeme de timeout ou de vérification de l'état de la requete précédente pour au besoin utiliser monObjet.abord();

    Sinon au lieu de...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if ((xhr.readyState == 4) && (xhr.status == 200)) 
    {
       alert(xhr.responseText);
       return xhr.responseText;
    }
    Le serveur peut retourner un status 304 ce qui correspond à une page non modifiée... donc...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304
    )) 
    {
       alert(xhr.responseText);
       return xhr.responseText;
    }
    @ tchaOo°

  3. #3
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    Citation Envoyé par kankrelune
    Salut... .. .

    Premier problème dans ton code... pour l'instanciation de ton objet tu semble oublier IE... vas voir là...

    En fait, cela va tourner dans une application XUL... donc je sais à l'avance que le navigateur supportera cela


    apparemment, il ne voulait pas le lancer en mode standard... mais tout est passé du premier coup en "chrome"

  4. #4
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        var url = document.getElementById("url").text;
    value ? innerHTML ?
    text n'existe pas !

Discussions similaires

  1. probleme avec open dialogue?
    Par nassimanocus dans le forum Débuter
    Réponses: 16
    Dernier message: 29/12/2013, 11h34
  2. Probleme avec Open File
    Par Antoinejdu44 dans le forum Windows Forms
    Réponses: 21
    Dernier message: 24/05/2009, 13h43
  3. [vb6]=Probleme avec open for append
    Par prison_break dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 02/01/2007, 13h40
  4. Petit probleme stup**** avec Open
    Par Maxbrad dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/11/2005, 21h38

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