在asp.net中的Url解码

url decoding in asp.net

本文关键字:Url 解码 中的 net asp      更新时间:2023-09-26

我有一个窗体在asp.net与几个文本框。我试图张贴的值在他们的服务器使用jquery ajax,但有问题。我使用javascript encodeuriccomponent文本框的值,然后张贴,但我看到url是自动编码的:

wanted result:
mylefturl/first%20name/last%20name
this is what's actually happenning:
mylefturl/first name/last name

所以我得到一个asp.net错误…

my javascript code:

var firstName = $("#SignupFirstName").val();
            var lastName = $("#SignupLastName").val();
            var email = $("#SignupEmail").val();
            var password = $("#SignupPassword").val();
            var url = '/Ajax/GetSignup/' + encodeURIComponent(firstName) + '/' + encodeURIComponent(lastName) + '/' + encodeURIComponent(email) + '/' + encodeURIComponent(password);
$.ajax({
                    url: u,
...

如何解决这个问题?

我建议您在发送AJAX调用时使用data参数:

var firstName = $("#SignupFirstName").val(),
    lastName = $("#SignupLastName").val(),
    email = $("#SignupEmail").val(),
    password = $("#SignupPassword").val();
$.ajax({
    url: '/Ajax/GetSignup/',
    type: 'POST',
    data: { 
        firstName: firstName, 
        lastName: lastName, 
        email: email, 
        password: password 
    },
    success: function(result) {
        // TODO: process the results from the AJAX call
    }
});

现在jQuery将负责正确的url编码发送到服务器的值。这些值将作为POST有效负载的一部分而不是url发送。这是确保它们正确到达服务器的最安全的方法。我建议您避免使用用户输入的值作为url路径的一部分。看一下下面的问题,了解一下如果你走这条路,你可能会遇到什么困难。