Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript asp.net中的url解码_Javascript_Jquery_Asp.net 4.0_Urldecode_Encodeuricomponent - Fatal编程技术网

Javascript asp.net中的url解码

Javascript asp.net中的url解码,javascript,jquery,asp.net-4.0,urldecode,encodeuricomponent,Javascript,Jquery,Asp.net 4.0,Urldecode,Encodeuricomponent,我在asp.net中有一个带有几个文本框的表单。我试图使用jqueryajax将其中的值发布到服务器,但遇到了问题。我对文本框的值使用javascript encodeURIComponent,然后发布,但我看到url是自动编码的: wanted result: mylefturl/first%20name/last%20name this is what's actually happenning: mylefturl/first name/last name 所以我得到一个asp.net

我在asp.net中有一个带有几个文本框的表单。我试图使用jqueryajax将其中的值发布到服务器,但遇到了问题。我对文本框的值使用javascript encodeURIComponent,然后发布,但我看到url是自动编码的:

wanted result:
mylefturl/first%20name/last%20name

this is what's actually happenning:
mylefturl/first name/last name
所以我得到一个asp.net错误

我的javascript代码:

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路径的一部分。请查看,以了解如果您选择该路线,您可能会遇到哪些困难。

我建议您在发送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路径的一部分。看一看,了解如果你走这条路,你可能会遇到什么困难。

一切似乎都很好。这就是一个例子。可能还有另一个错误。你能发布更多的代码吗?当我尝试在asp.net中调用编码的url时,问题实际上出现了,因此它似乎是自动解码的,请参考上面的示例:mylefturl/first[space]name/last[space]name,asp.net是否有url解码机制?一切似乎都很好。这就是一个例子。可能还有另一个错误。你能发布更多的代码吗?当我试图在asp.net中调用编码的url时,问题实际上出现了,因此它似乎是自动解码的,请参考上面的示例:mylefturl/first[space]name/last[space]name,asp.net是否有url解码机制?