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 :

[AJAX] Retour de xhr.responsetext


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 49
    Par défaut [AJAX] Retour de xhr.responsetext
    bonjour,

    voilà mon problème (qui n'en est pas vraiment un): je reçois grâce à xhr.responsetext le résultat d'un script php dans lequel j'ai placé pour tester un simple echo "ErrTEST"; à la fin.

    Ce script réalise pas mal de requêtes SNMP (get, walk ou set) et pour chacune d'elles j'ai placé un or die("Errxxxxx"); où les xxxxx représentent un code erreur.

    Dans le code javascript qui reçoit la réponse du script, je fais un test sur xhr.reponsetext pour connaître les 3 premiers caractères de la chaîne retournée.

    Si c'est différent de "Err" j'affiche la réponse normalement.

    Si c'est "Err", je fais
    chaine = xhr.responsetext;
    alert('Erreur: ' + chaine);

    Hors à ma grande surprise le test ne fonctionnait jamais, car en fait j'ai découvert que xhr.responsetext contenait un CRLF au début de la chaîne...

    Pour palier à ce problème, j'ai fait un

    chaine = chaine.substring(2, 5);

    avant le test conditionnel.

    Est-ce que c'est normal d'avoir ce CRLF au début de la chaîne retournée???

    Y a-t'il possibilité de le supprimer autrement qu'avec le substring ???

    Merci d'avance pour les réponses, même si ce n'est pas vraiment un problème!!!

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2004
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 291
    Par défaut
    Bonjour,

    le script PHP appelé via AJAX est dans un format ANSI, UTF8 sans BOM ou autre ?
    Pourrais-tu essayer selon les différents formats de texte cités ci-dessus ?

    Tu utilises l'appel AJAX via un framework ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 49
    Par défaut
    Désolé pour le délai, je n'ai pas eu le temps de repasser par ici depuis le post d'origine!!!

    Et merci pour la réponse...

    En fait, mon premier souci est que je ne suis pas le développeur d'origine du site, et que donc je ne saurais pas répondre à la question concernant l'encodage...!!! Où puis-je trouver cette info? Ou est-ce qu'il y a une commande qui me permettrait de le savoir en l'affichant dans une page???

    J'ai aussi remarqué que la réponse passant par Ajax n'affichait plus les accents mais des losanges noirs avec un ? blanc dedans... Est-ce que lorsque je fais mon echo final, je dois faire un truc genre UTFencode(chaine) ??? J'ai juste essayé de remplacer le "é" par &ecute; mais ça n'affiche pas "é", mais "&ecute;" à la place....

    Concernant le framework, je ne pense pas que j'en utilise, car pour le moment, j'en suis à mes débuts en développement web ( 2 mois que j'ai mis le pied dans le couple PHP/MySQL), avant ça je m'amusait beaucoup avec VBS. PHP et VBS étant tous les 2 des langages de script, ça ne me pose pas de difficultés particulières pour créer de nouveaux scripts/pages ou pour modifier l'existant.

    Mais certains trucs qu'a utilisé le développeur d'origine sont encore pour moi dans un flou monumental, comme les CSS par exemple, ou encore comme ici, l'encodage utilisé...

    Merci en tout cas pour la réponse, c'est une voie dans laquelle je vais chercher dans un premier temps, je reviendrai pour donner les résultats de mon investigation!!!

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2004
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 291
    Par défaut
    Citation Envoyé par heavenvibes Voir le message
    En fait, mon premier souci est que je ne suis pas le développeur d'origine du site, et que donc je ne saurais pas répondre à la question concernant l'encodage...!!! Où puis-je trouver cette info? Ou est-ce qu'il y a une commande qui me permettrait de le savoir en l'affichant dans une page???
    Dans ton navigateur, dans le menu, fais "Informations sur la page", regarde l'encodage.
    Ensuite uploade ton fichier, ouvre le avec l'éditeur Notepad++, regarde dans Encodage pour savoir l'encodage du fichier. Ensuite dans ton code, met l'encodage via balise html dans le head, ou PHP avec la fonction header.
    Pour ces 3 éléments, met tout dans un format, par exemple UTF8.

    Citation Envoyé par heavenvibes Voir le message
    J'ai aussi remarqué que la réponse passant par Ajax n'affichait plus les accents mais des losanges noirs avec un ? blanc dedans... Est-ce que lorsque je fais mon echo final, je dois faire un truc genre UTFencode(chaine) ??? J'ai juste essayé de remplacer le "é" par &ecute; mais ça n'affiche pas "é", mais "&ecute;" à la place...
    Problème d'encodage entre ton encodage de fichier et celui établi dans ton code. Par contre, ce n'est pas &ecute; mais é

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 49
    Par défaut
    Hello, merci pour cette réponse, et que de pistes!!!

    Message débuté à 2h du mat'...
    Alors, dans Firefox, Informations de la page, j'obtiens ISO-8859-1, en éditant mon fichier index.php, j'ai bien le header correspondant à ISO-8859-1, par contre, je n'ai pas trouvé la commande "Encodage" dans Notepad++, par contre il y a le menu Format dans lequel est sélectionné "Encoder en ANSI".

    D'autant plus bizarre que le problème des accents transitant par xhr.response s'est résolu en rajoutant un UTF8_encode(chaine); à la fin de mon script PHP...

    Je pense que je vais arrêter là les recherches, un problème étant résolu (les caractères accentués), l'autre n'étant pas vraiment un problème, c'était plus une interrogation puisque j'avais déjà trouvé ke moyen de contourner le CRLF en début de ligne...

    ça reste bizarre...

    Concernant l'encodage, une petite recherche Grogle m'a appris que xmlhttprequest fonctionnait en UTF8 par défaut...

    Et encore un truc plutôt... surprenant!!!

    J'ai 2 fonctions javascript distinctes utilisant xmlHTTPrequest. La première permettant de soumettre un formulaire en scannant tous les champs du formulaire donné, et en lui donnant le DIV de destination. La 2ème ne fait que recevoir l'adresse du script à afficher, et dans quel DIV l'afficher.

    Dans le premier, je suis obligé de faire le chaine.substring(2,3); , par contre dans le second je dois faire un chaine.substring(0,3); pour récupérer le code erreur. Le CRLF n'est pas présent dans le deuxième cas!!!

    J'ai trouvé d'où vient ce CRLF supplémentaire :

    le script php appelé n'étant pas le même pour chacune des fonctions javascript, j'ai cherché dans chacun des scripts php, et j'ai enfin trouvé:

    dans le second cas, le script php commence à la première ligne, alors que dans le premier cas, il commence à la seconde ligne, en supprimant la ligne inutile, tout rentre dans l'ordre!!!

    Merci pour toutes ces pistes, j'ai finalement rajouté un header php dans chacun de ces scripts et ne suis plus obligé de passer par UTF8_encode pour avoir les accents!!!

    header('Content-type: text/html; charset=iso-8859-1');

    Et terminé à 2h de l'aprè'm!!!

    PS : pour le é je sais, c'est juste un oubli de frappe!!!

    Merci!!!

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

Discussions similaires

  1. [AJAX] xhr.responseText et comparaison
    Par Nexussmb dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/10/2006, 17h32
  2. [INFOS][AJAX]Retour d'expérience
    Par SEMPERE Benjamin dans le forum Servlets/JSP
    Réponses: 17
    Dernier message: 28/09/2006, 16h43
  3. [AJAX] Retour chariot dans un textarea avec AJAX
    Par Death83 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 18/09/2006, 22h32
  4. [AJAX] Isoler les éléments de "xhr.responseText" ?!
    Par ghohm dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/09/2006, 15h00
  5. [AJAX] Retour xml
    Par Pollux dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 31/05/2006, 16h10

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