javascript之为什么我的 ajax 请求会去掉 '\' 反斜杠字符

insus 阅读:29 2025-12-25 22:24:30 评论:0

我正在使用 ajax 调用一个休息端点,如下所示。它需要两个参数用户权限

$.ajax({ 
    type: 'GET', 
    cache: false, 
    url: "/app/Rest/4.0/UserManagement/AddPermissionToUser", 
    data: { 
        username: encodeURI(user), 
        permissionName: encodeURI(permission) 
    }, 
    success: function (msg) { 
        //do stuff 
    } 
}); 

在 JavaScript 中,假设 user 可能类似于 domain\user1,ajax 请求会去掉反斜杠字符。最初我那里没有encodeUri()

更奇怪的事情是,如果我手动将此网址粘贴到浏览器中,像 domain%5Cuser1 一样对其进行编码,它就会按预期工作。我使用的是 IE 11,浏览器是否将其剥离,或者是 jQuery 的问题?有什么想法吗?

请您参考如下方法:

\ 可能被视为用于转义服务器端的特殊字符。

尝试传递一个像domain\\user1这样的字符串,看看它是否以单个斜杠的形式出现。

可能有更好的解决方案,但我们需要看看您如何处理服务器端代码中的字符串。


标签:ajax
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号