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

AJAX Discussion :

[AJAX] passage texte avec response.write


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 35
    Par défaut [AJAX] passage texte avec response.write
    Bonjour à tous,

    J'ai une page aspx où j'ai 1 fonctions js :
    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
    addArticle(s) {
    document.getElementById("t").innerHTML="Load..."
                xmlhttp=new XMLHttpRequest();
                xmlhttp.onreadystatechange = function() {
                    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                        document.getElementById("t").innerHTML=xmlhttp.responseText;
                        if (document.getElementById("t").innerHTML == "ok")
                        {
                            location.href(location.href);
                        }
                    }
                }
                xmlhttp.open("GET",s,true);
                xmlhttp.send();
                document.getElementById("t").innerHTML=s;
                }
    }
    j'appelle cette fonction à différents endroits dans cette page..

    je fais le traitement des données sur une autre page aspx et à la fin je renvoie "ok" via .

    Normalement, comme vous pouvez le voir dans mon code, si la reponse est "ok", je redirige la page.
    Or actuellement j'ai "ok" qui s'affiche sur ma page.
    Si je fais alert(xmlhttp.responseText) juste avant le if pour la redirection, il me renvoie tout ce qu'il y a dans la balise <head> et après "ok"..

    Pouvez-vous m'orienter sur mon erreur, sur ce qui m'a échappé, svp ?

    Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    Je n'suis pas sur mais je crois que location s'utilise de la sorte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.location.href="ton_url"

    Est ce qu'il rentre dans le if quand tu renvoie ok?

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    document.getElementById("t").innerHTML=xmlhttp.responseText;
    if(xmlhttp.responseText =="ok"){
           document.location.href="ton_url"
    }

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 35
    Par défaut
    merci de ta réponse.

    location.href n'est pas un problème, il fonctionne bien. après, c'est vrai qu'il y a plusieurs façons de l'utiliser

    étant donné que xmlhttp.response ne me renvoie pas que "ok" mais des balises avec, non ça ne rentre pas dans le if :/ et c'est ça le problème, je ne vois pas pourquoi il me renvoie tout ce qu'il y a dans <head>

  4. #4
    Membre expérimenté Avatar de brachior
    Homme Profil pro
    Doctorant
    Inscrit en
    Mai 2011
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 190
    Par défaut
    la méthode response renvoie le contenu de la page, c'est à dire les sources.
    Il est normal que s'il y a des balises, elle les récupères

    Si jamais tu récupères un texte en gras,
    Et que tu l'affiches dans une div,
    Il sera en gras parce qu'il recopiera les balises Oo

    Si tu ne veux pas de soucis,
    Fais en sorte que ta page que tu récupères ne contienne rien d'autre que ton texte.
    Tu te fiches qu'elle soit valide w3c ou bien compris par les navigateurs,
    Car elle ne te sert que à récupérer des valeurs.
    (même l'encodage n'est pas pris en compte, en AJAX il faut de l'UTF-8 je crois ^^)

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 35
    Par défaut
    merci pour ta réponse.

    la page que je récupère est structurée comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <head id="Head1" runat="server"/>
    <% //traitements ....
    Response.write("ok")
    %>
    si j'enlève la balise head, ma fonction n'affiche que "load..." et donc la suite ne s'exécute pas correctement.
    et si j'enlève les <% %>, le code n'est bien sur pas interprété...

  6. #6
    Membre expérimenté Avatar de brachior
    Homme Profil pro
    Doctorant
    Inscrit en
    Mai 2011
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 190
    Par défaut
    J'ai jamais fait d'Aspx donc je vois pas trop ^^
    Mais peut être que tu peux contourner le problème en insérant ton résultat dans une balise html tu pourrai alors le récupérer autre part:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <head id="Head1" runat="server"/>
    <% //traitements ....
    <span id='resultatMaPageASPX'>Response.write("ok")</span>
    %>
    et dans ta page qui l'appelle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var temp = document.getElementById("temp");
    temp.innerHTML = xmlhttp.responseText;
    if (temp.getElementById("resultatMaPageASPX").innerHTML == "ok")
      ...

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/06/2011, 10h25
  2. Probleme avec response.write
    Par maxxou dans le forum ASP.NET
    Réponses: 6
    Dernier message: 27/09/2010, 16h56
  3. Réponses: 3
    Dernier message: 02/11/2009, 15h25
  4. Problème avec Response.write et <!DOCTYPE .. >
    Par Gunny dans le forum ASP.NET
    Réponses: 2
    Dernier message: 22/07/2008, 15h41
  5. Erreur avec response.write et <TABLE>
    Par angelevil dans le forum ASP
    Réponses: 4
    Dernier message: 11/03/2005, 14h48

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