ajax webservice调用中的撇号问题

时间:2011-01-28 17:23:31

标签: javascript asp.net jquery ajax webservice-client

我正在使用带有.ajax

的jQuery调用web服务

以下是呼叫的数据参数:

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

工作正常。但是当参数DescriptionTitre包含'字符时,不会调用!!!

有人知道如何在Titre和/或Description中使用撇号字符使其工作吗?

5 个答案:

答案 0 :(得分:3)

我会使用json编码器。 Douglas Crockford的JSON in JavaScript似乎是一个不错的选择。

然后你就写了

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

让主人担心引用。

答案 1 :(得分:2)

尝试逃避撇号:

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

答案 2 :(得分:0)

您可能需要对要在URL中安全传递的值进行编码。

http://plugins.jquery.com/project/URLEncode

答案 3 :(得分:0)

您可以尝试转义它:

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

答案 4 :(得分:0)

这是目前对我有效的逃生方式:

var theString = "O'Kief blahblahblahblah";
theString = theString .replace("'", "\\'");
//Note the double \\ 

不会破坏并保存为:O'Kief blahblahblahblah