JQuery - Ajax:encodeUriComponent不工作(EncodeUri)

Use*_*999 2 javascript asp.net ajax jquery urlencode

在一个小的asp.net webclient中,我有以下Ajax调用.

$.ajax({
    type: "GET",
    url: "Search.aspx?action=GetDocumentInfoByChronicleId&" + querystring
})
.success(function (msg) {
    $("#documentcontent").html(msg);
})
Run Code Online (Sandbox Code Playgroud)

querystring默认字符的工作原理但在使用特殊字符时似乎不起作用(参见下面的示例)

objectId=09028139800c59e3&Db=DIV_Firm <== Works
objectId=090281>>773c5983&Db=DIV_Firm <== Non Working
Run Code Online (Sandbox Code Playgroud)

基于(以及更多关于SO的帖子我选择改变我的ajax调用如下(EncodeUriComponent).但似乎没有一个工作(即使使用原始的查询字符串).

有人能向我指出我做错了什么吗?

$.ajax({
    type: "GET",
    url: "Search.aspx?action=GetDocumentInfoByChronicleId&" + encodeURIComponent(querystring)
})
.success(function (msg) {
    $("#documentcontent").html(msg);
})
Run Code Online (Sandbox Code Playgroud)

注意: EncodeUri似乎工作正常.但我更喜欢使用EncodeUriComponent

ade*_*neo 7

如果在执行ajax调用时有某种方式传递数据,那会不会更容易哦,等等,有,使用data选项

$.ajax({
    type : "GET",
    url  : "Search.aspx",
    data : {
        action   : 'GetDocumentInfoByChronicleId',
        objectId : '09028139800c59e3',
        Db       : 'DIV_Firm'
    }
});
Run Code Online (Sandbox Code Playgroud)

jQuery将为您创建查询字符串并适当地转义它

作为旁注,encodeURI正是您应该使用它来编码包含等的查询字符串?,&因为它们encodeUriComponent也会转义这些字符,使查询字符串无效,但上面发布的方法更简单,因为您不必担心编码一点都不