2011-01-28 2 views
0

J'appelle un webservice en utilisant jQuery avec .ajaxavec ajax webservice apostrophe appel

Voici les paramètres de données pour l'appel:

var parameters = "{'Titre':'" + Titre + "','Description':'" + Description + "','Contact':'" + Contact + "','VilleId':'" + VilleId + "','QuartierId':'" + QuartierId + "','UserId':'" + UserId + "'}"; 

Il fonctionne très bien. Mais lorsque les paramètres Description ou Titre contiennent le caractère ', pas d'appel !!!

Quelqu'un at-il une idée de comment puis-je le faire fonctionner même avec un caractère apostrophe dans Titre et/ou Description?

+0

double possible de http://stackoverflow.com/questions/1470768/how-to-escape-apostrophe-or-quotes-on-a-jsp-used -by-javascript – Lance

Répondre

3

Je voudrais utiliser un encodeur JSON. Le JSON in JavaScript de Douglas Crockford semble être un bon choix.

Ensuite, vous écrivez juste

var param = JSON.stringify({ 'Titre': Titre, 'Description': Description }); 

et laissez le souci maître de la cité.

+0

ça marche bien. Merci beaucoup. –

+0

Comment puis-je préciser que la question est répondue. –

+0

Lorsque vous avez décidé quelle réponse vous était la plus utile, marquez-la comme la réponse acceptée en cliquant sur le cadre de la case à cocher à gauche de la réponse. Cela permet aux autres personnes de savoir que vous avez reçu une bonne réponse à votre question. Cela est utile car cela montre aux autres que vous obtenez de la valeur de la communauté. (Si vous ne le faites pas, les gens vous demanderont souvent poliment de revenir en arrière et d'accepter des réponses pour plus de vos questions!) - http://stackoverflow.com/faq –

2

Essayez échapper lapostrophe:

var parameters = "{ 
     'Titre':'" + Titre.replace(/'/g,"\'") + 
//      ^
     "','Description':'" + Description + 
     "','Contact':'" + Contact + 
     "','VilleId':'" + VilleId + 
     "','QuartierId':'" + QuartierId + 
     "','UserId':'" + UserId + "'}"; 
+1

vous voulez dire Titre.replace (/ '/ g, "\\'") – balint

0

Vous pouvez y échapper:

var str = "asdfsd'asdfadf"; 
str = str.replace("'", "\'");