Ajax, xhr.send() et caracteres speciaux.
Résolu
Drclown
Messages postés
16
Statut
Membre
-
AssassinTourist Messages postés 409 Date d'inscription Statut Contributeur Dernière intervention -
AssassinTourist Messages postés 409 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, j'ai un problème lorsque je veux envoyer une saisie en AJAX avec send(). Pour info j'envoie les données par POST comme ceci:
Le problème est que lorsque je tape un & dans la saisie et que j'exécute, send() est bloqué par ce & qui l'interprète comme ça:
Comment je peux faire pour que les & soit envoyer dans ma page ajax.php ?
xhr.send("donnees="+donnees);
Le problème est que lorsque je tape un & dans la saisie et que j'exécute, send() est bloqué par ce & qui l'interprète comme ça:
xhr.send("donnees=&");
Comment je peux faire pour que les & soit envoyer dans ma page ajax.php ?
4 réponses
-
Bonjour,
Les backslasher peut-être. -
Merci Assassintourist en mettant un antislash le & est interprété comme une chaine!
Le codexhr.send("donnees=/&");me renvoi:&
J'ai plus qu'a faire une regex et c'est bon =D -
Désolé mais faite ça ne marche pas je mettais tromper l'antislash avant le & bloque toujours la méthode send()...
D'autre idées peu être? -
J'ai trouvé la solution '&' est un séparateur dit réservé pour les URL etc... Pour permettre à send() de l'envoyer il faut utiliser la fonction encodeURIComponent() sur la chaine:
donnees = encodeURIComponent(donnees); xhr.open('POST', 'ajax.php'); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send("donnees="+donnees);
et la ça marche Youpi!!