2011-04-21 13 views
3

을 dojo.xhrPost하기 위해, 나는 그것이 내가 비슷한 일 (하나 개 이상의 매개 변수를 전송)을 할 수있는 방법 GET매개 변수

dojo.xhrGet 
({ 
    url:"MyServerPageURL?Param_A="+"ValueA"+"&Param_2="+"Value2", 
    load: function(data) 
    { 
     //do something 
    }, 
    preventCache: true, 
    sync: true, 
    error: function(err) 
    { 
     alert("error="+err); 
    } 
}); 

를 통해 하나 개 이상의 매개 변수를 보내려면이 방법을 사용 대신 dojo.xhrPost을 사용 하시겠습니까?

+0

저는 Dojo를 처음 사용합니다. 귀하의 질문에 코드를 내가 xhrGet에 대해 배울 수있었습니다. 고맙습니다. –

답변

4

postData 매개 변수를 사용해보십시오. 예컨대 :

 var myParameters= {"Param_A":"Value_A", "Param_B":"Value_B"}; 

     var xhrArgs = { 
         url: "postIt", 
         postData: dojo.toJson(myParameters), 
         handleAs: "text", 
         headers: { "Content-Type": "application/json", "Accept": "application/json" }, 
         load: function(data) { 

         }, 
         error: function(error) { 

         } 
        } 


var deferred = dojo.xhrPost(xhrArgs); 
+0

서버에서 request.getParameter에 null이 표시됩니다. 왜 dojo.toJson이 필요한가요? 조금 설명해 주시겠습니까? – bikashg

+0

postData - 요청으로 보내려는 데이터입니다. body.dojo.xhrPost이 작업을 수행하지 마십시오. POST 본체로 전달됩니다. 이 경우 postData 매개 변수는 문자열이어야하기 때문에 dojo.toJson이 필요합니다. – Andrei

+0

Accept Value와 Content Type을 application/json으로 설정하는 것도 좋은 생각입니다. var xhrArgs = {..., headers : { "Content-Type": "application/json", "Accept": "application/json" }, ... } – Andrei

6

당신은 원시 POST 문자열을 보내려고하지 않는 postData를 매개 변수를 사용하지 않습니다. 일반적으로 'content'매개 변수를 사용하려고합니다.

dojo.xhrPost({ 
    url: 'http://whatever...', 
    contents: { 
     ParamA: 'valueA', 
     ParamB: 'valueB' 
    }, 
    load: function(response) { 
     // ... 
    } 
}); 

참고 : 예를 들어 쿼리 문자열을 직접 구축하고 URL에 추가 할 필요가 없습니다 또한 xhrGet에 대한 사용 '내용'작품.

0

xhrPOst의 경우 게시 할 양식 이름을 언급 할 수 있습니다. 따라서 모든 양식 요소가 게시됩니다. 추가 매개 변수를 전달하려면 숨겨진 변수를 게시 된 양식으로 사용하십시오.