2009-12-23 3 views
5

Comment puis-je passer une grande chaîne contenant des caractères comme '%' et '&' à ma page php par ajax post? En d'autres termes, comment les coder en javascript et les décoder en php?Ajax Post caractères spéciaux

Répondre

15

la fonction encodeURIComponent() JavaScript peut être utilisé pour échapper à l'un de ces caractères dans les clés ou les valeurs.

PHP va le recevoir et le décoder automatiquement dans le tableau $_POST.

Le format des données doit être Interrogation format chaîne, en particulier:

Content-Type: application/x-www-form-urlencoded 

Par exemple:

Name=Joe&Age=23&City=Altoona 

Si vous utilisez encodeURIComponent() sur chaque touche et chaque valeur, puis de les joindre à = , et les grouper par &, vous n'aurez plus aucun problème.

1

Vous n'avez réellement besoin d'encoder ou de décoder quelque chose, si vous utilisez le paramètre POST dans la méthode send de XMLHttpRequest. Seul GET a besoin d'un tel codage, car il utilise le champ URI. Vous devez faire attention lors de l'utilisation de ces données dans les requêtes SQL. Méfiez-vous des injections.