Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Ajax] Envoyer une chaine de caractère contenant &

Sujet résolu
    7 mars 2010 à 20:23:37

    Bonjour à tous,

    Je suis actuellement sur un script ajax, et j'ai le problème suivant :
    J'envoie les données par la méthode POST
    xhr_object.send("txt=" + text + "&user=" + user_id );
    

    Cela marche parfaitement, hormis dans un cas bien particlulier : lorsque le champs text contient le caractère &.
    Après une recherche, j'ai vu que le caractère d'échappement dans une url (donc certainement en POST aussi) est le %.
    J'ai alors essayé de modifier mon champ text de la manière suivante :
    var reg=new RegExp("&", "g");
      text=text.replace(reg,"%&");
    
    (remplacera && en %&%&amp)
    Ce qui arrive à me transmettre seulement le début du texte : %& .

    Quelqu'un a-t'il une idée d'où peut venir le problème?

    Merci

    Cédric
    • Partager sur Facebook
    • Partager sur Twitter
      7 mars 2010 à 20:26:01

      Fais un encodeURIComponent(user_id) avant l'envoi. Ca devrait échapper correctement le & je pense.
      • Partager sur Facebook
      • Partager sur Twitter
        7 mars 2010 à 20:32:35

        Nickel!
        Merci beaucoup
        En fait,encodeURIComponent n'echappe pas vraiment le &, mais le remplace apparement par %26
        • Partager sur Facebook
        • Partager sur Twitter
          7 mars 2010 à 20:44:08

          En effet le mot correct est tout simplement "encodé" ^^

          Ravi d'avoir pu t'aider :)
          • Partager sur Facebook
          • Partager sur Twitter

          [Ajax] Envoyer une chaine de caractère contenant &

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown