在一个小型 asp.net web 客户端中,我有以下 Ajax 调用。
$.ajax({
type: "GET",
url: "Search.aspx?action=GetDocumentInfoByChronicleId&" + querystring
})
.success(function (msg) {
$("#documentcontent").html(msg);
})
查询字符串
适用于默认字符,但在使用特殊字符时似乎不起作用(请参见下面的示例)
objectId=09028139800c59e3&Db=DIV_Firm <== Works
objectId=090281>>773c5983&Db=DIV_Firm <== Non Working
基于this (还有更多有关 SO 的帖子,我选择更改我的 ajax 调用,如下所示(EncodeUriComponent
)。但似乎没有一个起作用(即使使用原始查询字符串)。
有人可以向我指出我到底做错了什么吗?
$.ajax({
type: "GET",
url: "Search.aspx?action=GetDocumentInfoByChronicleId&" + encodeURIComponent(querystring)
})
.success(function (msg) {
$("#documentcontent").html(msg);
})
注意: EncodeUri
似乎正在工作。但我更喜欢使用 EncodeUriComponent
最佳答案
如果在进行 ajax 调用时有某种方法来传递数据,不是会容易很多吗?哦等等,有,使用 data
选项
$.ajax({
type : "GET",
url : "Search.aspx",
data : {
action : 'GetDocumentInfoByChronicleId',
objectId : '09028139800c59e3',
Db : 'DIV_Firm'
}
});
jQuery 将为您创建查询字符串并适本地对其进行转义
作为旁注,encodeURI
正是您应该用来将包含 ?
、&
等的查询字符串编码为 encodeUriComponent
也会转义这些字符,使查询字符串无效,但上面发布的方法要简单得多,因为您根本不必担心编码。
关于javascript - JQuery-Ajax : encodeUriComponent not working (EncodeUri does),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23559077/