2010-03-22 6 views
2

Je cherche à créer un formulaire Contact/Requête, dans lequel l'utilisateur final peut envoyer un email au webmaster. Le formulaire a un champ 'textarea', qui capture les longues chaînes de l'utilisateur, si j'utilise AJAX pour soumettre le formulaire en utilisant la méthode GET, mes params ont tendance à casser s'il s'agit d'un caractère spécial, '&' dans la chaîne de textarea. Je suis coincé s'il vous plaît aider!Comment publier des chaînes longues contenant des caractères spéciaux (comme '&' spécifiquement) via une requête AJAX?

+2

N'est-ce pas un abus de HTTP/Rest d'utiliser GET pour publier des données sur le serveur? –

+0

Cochez [this] (http://stackoverflow.com/questions/332872/how-to-encode-a-url-in-javascript) SO question qui explique comment encoder une URL en javascript. – systempuntoout

Répondre

0

Vous pouvez faire l'URL de chaîne en toute sécurité en utilisant urlencode JavaScript ...

var textToSend = encodeURIComponent(myform.myfield.value); 

Cela vous permet de convertir tous les caractères spéciaux en caractères codés URL.

+0

urlencode est supporté javascript? – jball

+1

Etes-vous sûr que urlencode existe en javascript? Utilisez encodeURIComponent()! – systempuntoout

+0

J'ai essayé "échapper" et ça fonctionne très bien :) –

3

Essayez d'appeler encodeURIComponent dans votre javascript lorsque vous postez la demande.

+0

J'ai essayé "escape" et ça fonctionne très bien :) –

+1

N'utilisez pas 'escape', il ne fonctionne pas très bien (sauf si vos données * arrivent * à tomber dans le sous-ensemble de caractères qu'il gère OK) . Utilisez encodeURIComponent. – Quentin

+0

cool, j'utilise celui que vous suggérez ... quels caractères spéciaux «échappent» omettent? –

Questions connexes