2011-02-18 4 views
0

JSON을 사용하여 서버와 통신하는 웹 응용 프로그램을 개발 중입니다. 나는, JSON 문자열로 서버에 데이터를 전달, 서버에서 처리를 구문 분석하고있는 jqGrid에 표시되는 JSON 백을 보내 JSON RPC in jqGrid

var jsonStr = '{ name: "Rob", time: "2pm" }'; 
jQuery("#name").jqGrid({ 
    type : "POST", 
    url:'ControllerServlet?jsonData='+jsonStr, 
    datatype: "json", 

를 사용합니다.

이것은 저에게는 효과적이지만 JSON-RPC의 역할이 무엇인지 궁금합니다. 나는 그것이 원격 호출에 사용되는 것을 읽었다. 위의 방법으로 Servlet을 호출하는 대신 JSON-RPC를 사용하면 어떤 이점이 있습니까? JSON-RPC를 사용하여 동일한 작업을 수행하려면 어떻게해야합니까?

+0

사용하는 'url'은 특히 HTTP POST의 경우 매우 이상하게 보입니다. POST를 사용하는 경우 일반적으로 다른 jqGrid 매개 변수 인'page','rows','sidx','sord'와 같이 본문의 모든 매개 변수를 보내야합니다. 이렇게하려면'postData' 매개 변수를 사용할 수 있습니다. 예를 들어,'postData : {name : "Rob", 시간 : "2pm"}'. ** 모든 ** 매개 변수를 JSON 형식으로 서버에 보내려면'serializeRowData : function (data) {return JSON.stringify (data);}'와 선택적으로'ajaxGridOptions : {contentType : "application/json; = utf-8 "}'jqGrid 매개 변수. 그 후에 서버 코드를 변경해야합니다. – Oleg

답변

0

website states으로 JSON-RPC는 JSON을 사용하는 remote procedure call 프로토콜 사양입니다. 따라서 XML-RPC 또는 Java의 RMI과 비슷한 서버에서 원격 메소드/프로 시저를 호출하는 사양입니다. JSON-RPC와 XML-RPC는 기본 전송 프로토콜로 HTTP를 사용할 수 있지만 다른 프로토콜과도 작동 할 수 있습니다.

한편, jqGrid와 일반적으로 Ajax는 일반적으로 HTTP (이상적으로는 RESTful) 요청을 사용하여 예를 들어 직접 표현을 가져 오거나 전송합니다. JSON 또는 XML로 인코딩 된 데이터. 지금까지는 이것이 JavaScript 개발에서 선호되는 방법입니다 (comparison of REST vs XML-RPC은 JSON-RPC에도 잘 적용되고 적용됩니다).