我使用$ .ajax将SQL查询发送到我的Web服务器。查询字符串包含多个单引号(')。我在编码单引号时遇到了一个非常混乱的问题。
我的代码是这样的,请注意查询字符串中的单引号:
foreach ($data->set as $row) {
$row->value = ucwords($row->name);
}
如果我在进行AJAX调用之前没有显式调用encodeURIComponent,jQuery会为我编码,但是,单引号默认不编码为%27,所以查询不起作用;
如果我将编码的查询字符串传递给jQuery,它将再次编码,这会弄乱查询字符串。
我能想象的唯一解决方案是,我必须覆盖jQuery对URL进行编码的行为,并将所有(')替换为%27。但我不知道jQuery是否支持这一点。 有人有解决方案吗?
答案 0 :(得分:0)
当您使用GET
时,您可以"覆盖"通过创建自己的查询字符串来实现jQuery的这种行为...
url: "http://mywebserver/query"+
"?env=" + encodeURIComponent(dbserver1)+
"&endTime="+encodeURIComponent(getUTCDate())+
"&startTime="+encodeURIComponent(dateadd(hour, -336, getUTCDate()))+
"&text="+encodeURIComponent(query)
这相当于你正在做的事情