javascript - JQuery-Ajax : encodeUriComponent not working (EncodeUri does)

标签 javascript jquery asp.net ajax urlencode

在一个小型 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/

相关文章:

javascript - 编写多维数组 jQuery

javascript - 动态创建的元素上的事件绑定(bind)?

javascript - 谷歌地图搜索框功能在模态窗口中不起作用

javascript - 我如何确定哪些参数已传递给 lodash 部分函数?

javascript - 连接模板文字时出现奇怪的错误

javascript - 从选择下拉列表中创建查询字符串链接?

javascript - 在 Chrome 中禁用 'Use Password for' 自动完成

javascript - 有谁知道 DOM 检查器 javascript 库或插件?

javascript - 需要帮助删除 Javascript 中的 li 项目符号

asp.net - ASP.Net 向导控件是否在禁用 javascript 的情况下工作?