【发布时间】:2016-11-30 20:44:12
【问题描述】:
我正在使用 $.ajax 向我的 Web 服务器发送 SQL 查询。查询字符串包含几个单引号 (')。我在编码单引号时遇到了一个非常混乱的问题。
我的代码是这样的,请注意查询字符串中的单引号:
var query = "select SID, age from Students where Name=\'Jason\'" + String.fromCharCode(10) +
"order by age asc";
$.ajax({
url: "http://mywebserver/query",
data: {
env: "dbserver1",
endTime: "getUTCDate()",
startTime: "dateadd(hour, -336, getUTCDate())",
text: query
},
type: "GET",
dataType: "json"
}).done(function (datum) {
});
如果我在调用 AJAX 之前没有显式调用 encodeURIComponent,jQuery 会为我编码,但是单引号默认不编码为 %27,所以查询不起作用;
如果我将编码的查询字符串传递给 jQuery,它会再次编码,这会弄乱查询字符串。
我能想象的唯一解决方案是,我必须覆盖 jQuery 编码 URL 的行为,并将所有 (') 替换为 %27。但我不知道 jQuery 是否支持。 有人对此有解决方案吗?
【问题讨论】:
标签: javascript jquery ajax encoding