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

标签 javascript jquery ajax rest razor-2

我正在使用 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这样的字符串,看看它是否以单个斜杠的形式出现。

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

关于javascript - 为什么我的 ajax 请求会去掉 '\' 反斜杠字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23831280/

相关文章:

javascript - 用 every 和 $.post 关闭

javascript - 使用 Node.js 在进程终止时执行事件

javascript - 如何调整此 Highcharts 的大小?

javascript - Jquery DataTables 持久主排序

javascript - 深度链接基础 5 个选项卡

javascript - 启用选择元素中的所有选项

javascript - 未通过添加 ajax 逻辑定义函数

javascript - 变量内部循环内部成功 : in ajax call JS

javascript - Vue.js 中的嵌套组件

javascript - 掌握某些 javascript 功能背后的概念