2012-07-09 3 views
0

안녕하세요. 아약스없이 jquery에서 게시물 형식으로 데이터를 보내는 데 문제가있었습니다. 내가 같이 URL을했다 :

intranetUrl+"customer/Ri_logon5.asp?requestString="; 

및 매개 변수를 보낼 것이 있습니다

'manish|^info1234|^|^X|^11111985|^1.0|^|$'; 

나는대로 아약스와 그것을 시도 :

function handleLogin() 
{ 

var form = $("#loginForm");  
var u = $("#username", form).val(); 
var p = $("#password", form).val(); 
var d = $("#dob", form).val(); 

if(u != '' && p!= '') 
{ 

    var finalStr = u+encodeURIComponent("|^")+p+encodeURIComponent("|^")+encodeURIComponent("|^")+"X"+encodeURIComponent("|^")+d+encodeURIComponent("|^")+"1.0"+encodeURIComponent("|^|$"); 
    var encodedURL = encodeURI(intranetUrl+"customer/Ri_logon5.asp?requestString="); 
    var parameters = decodeURIComponent(finalStr); 
    alert("param:"+parameters); 

    $.post(encodedURL, parameters , 
      function(data) { 
       alert("Data Loaded: " + data); 
      }); 

} 


else 
{ 

    alert("You must enter a username and password", function() {}); 
    $("#submitButton").removeAttr("disabled"); 
} 

}

여기에 내가 올바른 결과를 얻었다 . 내가로 사용

: 여기

function handleLogin() 
{ 

var form = $("#loginForm");  
var u = $("#username", form).val(); 
var p = $("#password", form).val(); 
var d = $("#dob", form).val(); 

if(u != '' && p!= '') 
{ 

    var finalStr = u+encodeURIComponent("|^")+p+encodeURIComponent("|^")+encodeURIComponent("|^")+"X"+encodeURIComponent("|^")+d+encodeURIComponent("|^")+"1.0"+encodeURIComponent("|^|$"); 
    var encodedURL = encodeURI(intranetUrl+"customer/Ri_logon5.asp?requestString="); 
    var parameters = decodeURIComponent(finalStr); 
    alert("param:"+parameters); 

$.ajax({ 
     type: "POST", 
     contentType:"application/x-www-form-urlencoded; charset=UTF-8", 
     url: encodedURL, 
     data: parameters 
     }).done(function(msg) 
       { 
        response = msg 
        console.log("repon s???????????????e::>::"+response); 
      }); 

} 


else 
{ 

    alert("You must enter a username and password", function() {}); 
    $("#submitButton").removeAttr("disabled"); 
} 


} 

도 내가 올바른 결과를 얻었다 그러나 나는 아약스없이 다음 포스트 방법을 사용할 때 나는 결과 예상되지 않았다

function handleLogin() 
{ 

var form = $("#loginForm");  
var u = $("#username", form).val(); 
var p = $("#password", form).val(); 
var d = $("#dob", form).val(); 

if(u != '' && p!= '') 
{ 

    var finalStr = u+encodeURIComponent("|^")+p+encodeURIComponent("|^")+encodeURIComponent("|^")+"X"+encodeURIComponent("|^")+d+encodeURIComponent("|^")+"1.0"+encodeURIComponent("|^|$"); 
    var encodedURL = encodeURI(intranetUrl+"customer/Ri_logon5.asp?requestString="); 
    var parameters = decodeURIComponent(finalStr); 
    alert("param:"+parameters); 
    post_to_url(intranetUrl+"customer/Ri_logon5.asp", finalStr); 




} 


else 
{ 

    alert("You must enter a username and password", function() {}); 
    $("#submitButton").removeAttr("disabled"); 
} 


} 


function post_to_url(url, params) { 
var form = document.createElement('form'); 
form.action = url; 
form.method = 'POST'; 

var postParam = encodeURIComponent(params); 

var input = document.createElement('input'); 
input.type = 'hidden'; 
input.name = 'requestString='; 
input.value = postParam; 
document.body.appendChild(input); 
form.appendChild(input); 
form.submit(); 

} 

하지만이를 사용하여 마지막 코드는 원하는 출력을 얻지 못했습니다. 이게 뭐가 잘못 됐니? 모든 제안을 주시면 감사하겠습니다.

지금의 나는 무엇을 서버 출력이로 가지고있어 확인 :

requestString%3D=manish%25257C%25255Einfo1234%25257C..... 

특수 문자가/난 후 문제가 무엇 위에서 그들을 인코딩했다 늘지 디코딩 인코딩되지 않습니다 의미?

+0

@dystroy 올바른 사용자 이름과 암호를 전달하면 서버는 응답이있는 문자열을 반환합니다. se 코드 0과 -1 중 하나 또는 모두가 부정확 할 때 -1. 매개 변수가 올바른 형식으로 보내지지 않으면 응답 코드가 1 인 문자열을 반환합니다. 예를 들어 성공하면 문자열이 잘못된 | 0 |^success |^잘못된 사용자 이름과 암호 -1 |^Unsucessfull |^및 3 번째 1 |^Not an 개체 | ^. 제 경우에는 마지막 출력을 얻었습니다 – PPD

답변

1

세 번째 방식에 몇 가지 문제 :

  • 는 전체 URI 작업으로 설정하지 않아야 만 intranetUrl+"customer/Ri_logon5.asp"

  • 당신이 같은 입력 필드의 값을 설정하지 말아야 URIEncoded 문자열. 양식 제출을 그대로 두십시오. 이 form.submit();

  • 의 정상적인 comportment 당신이 제출하기 전에 페이지에 양식을 추가해야합니다 같이

  • 는 페이지를 잎 : document.body.appendChild(form);

처음 두 점은 당신이 전화를한다는 의미는 당신의 function with

var finalStr = u+encodeURIComponent("|^")+p+encodeURIComponent("|^")+encodeURIComponent("|^")+"X"+encodeURIComponent("|^")+d+encodeURIComponent("|^")+"1.0"+encodeURIComponent("|^|$"); 
post_to_url(intranetUrl+"customer/Ri_logon5.asp", finalStr); 
+0

@dystory 설명 주셔서 감사합니다. 하지만 여전히 나는 그것을 얻지 못했습니다. 일부 코드를 보여주십시오. – PPD

+0

이제 제출하기 전에 페이지에 양식을 추가했습니다. 변수 postParam에 인코딩 된 매개 변수. – PPD

+0

@dystory llok 내 코드에서 다시 한 번 내가 무엇을 놓치고 있는지 알려주세요. 감사합니다 – PPD

관련 문제