簡體   English   中英

進行jQuery AJAX調用時如何對單引號進行%編碼?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM