![](/img/trans.png)
[英]Sending parameters in Jquery Ajax call with quotes, double or single
[英]How to % encode single quotes when making jQuery AJAX call?
我正在使用$ .ajax將SQL查詢發送到我的Web服務器。 查詢字符串包含多個單引號(')。 我在編碼單引號時遇到了一個非常麻煩的問題。
我的代碼是這樣的,請注意查詢字符串中的單引號:
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是否支持。 有人對此有解決方案嗎?
在使用GET
,可以通過創建自己的查詢字符串來“替代” jQuery的這種行為。
url: "http://mywebserver/query"+
"?env=" + encodeURIComponent(dbserver1)+
"&endTime="+encodeURIComponent(getUTCDate())+
"&startTime="+encodeURIComponent(dateadd(hour, -336, getUTCDate()))+
"&text="+encodeURIComponent(query)
這等同於您在做什么
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.