0

몇 개의 텍스트 상자가있는 asp.net에 양식이 있습니다. jquery 아약스를 사용하여 서버에 값을 게시하려고하지만 문제가 있습니다. 나는 텍스트 상자의 값을 자바 스크립트에 encodeURIComponent를 사용하고, 다음 게시,하지만 난 URL이 자동으로 인코딩 된 것을 볼 수 ...asp.net의 URL 디코딩

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

this is what's actually happenning: 
mylefturl/first name/last name 

을 그래서 내가 asp.net 오류가

내 자바 스크립트 코드 :

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, 
... 

어떤 해결책이 있습니까?

+0

모든 게 잘된 것 같습니다. [여기] (http://jsfiddle.net/LDuza/)가 그 예입니다. 다른 오류가있을 수 있습니다. 더 많은 코드를 게시 할 수 있습니까? –

+0

asp.net에서 인코딩 된 URL을 호출하려고하면 실제로 문제가 발생하므로 위의 예와 같이 자동으로 해독하는 것처럼 보입니다. mylefturl/first [space] name/last [space] name, asp.net에 대한 디코딩 메커니즘이 있습니까? – user560498

답변

3

나는 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이 서버로 전송 값을 인코딩 처리됩니다. 이러한 값은 URL 대신 POST 페이로드의 일부로 전송됩니다. 서버에 올바르게 도달 할 수있는 가장 안전한 방법입니다. url 경로의 일부로 사용자가 입력 한 값을 사용하지 않는 것이 좋습니다. following question을보고 그 길로 가면 어떤 어려움을 겪을 지 이해하십시오.