为什么我的ajax请求会删除'\'反斜杠字符?

时间:2014-05-23 14:01:28

标签: 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中,让我们说用户类似域\ user1 ,ajax请求会删除反斜杠字符。最初我没有在那里的encodeUri()&#c>

另一个奇怪的事情是,如果我在浏览器中手动粘贴此网址,就像这个域%5Cuser1 一样,它会按预期工作。我在IE 11中,是浏览器剥离这个,还是jQuery的问题?有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

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

可能有更好的解决方案,但我们需要看看你在服务器端代码中使用字符串做了什么。