2011-02-07 6 views
1

사이트에 구성된 Json 서버에 대한 JavaScript 요청을 작성하려고합니다. 웹 서비스 모듈을 사용하여 주석을 저장할 수 있도록 사이트의 사용 권한을 처리했습니다. 문제는 내가 이렇게 자바 스크립트를 사용해야하고 나는이 시도했다 :JavaScript 서버 요청 방법

function CommentThis() 
{ 
    var comment_object = 
      { 
       "nid": 3,  "comment": "Hello!This is my comment...", 
       "cid": 2,  "subject": "My comment",  "uid": 1 
      }; 
    var data= 
     { 
     "method": "comment.save", 
     "comment": comment_object 
     }; 

    var jsonRequest = new Request.JSON(
       { 
       url: "http://my_site.com/?q=services/json", 
       onSuccess: function(response){ 
        var myDataArray = response['#data']; 
        document.writeln(myDataArray[16]); 
           } 
       } 
      ).send({ data: data }); 

} 

방화범은 요청이 정의되지 않은 말한다. 사실이 JSON 요청 클래스를 작성하는 방법을 모르겠습니다. 도와주세요.

+4

는'Request.JSON'이 Mootools의 함수이다 :

function ajax(url, settings) { var ajax = new window.XMLHttpRequest(), data = settings.type == 'GET' ? '' : settings.data; url = settings.type == 'GET' ? url + (settings.data ? '?' + settings.data : '') : url; ajax.onreadystatechange = function() { if (ajax.readyState == 4) { //response ready if (ajax.status == 200) { //success if (settings.success) settings.success(ajax.responseText, ajax.statusText); } else { if (settings.error) settings.error(ajax, ajax.status, ajax.statusText); }; }; }; ajax.open(settings.type, url); ajax.send(data); }; 

그리고 여기에 그것을 사용하기 위해 다시 작성 함수입니다. Mootools를 사용하고 있습니까? – lonesomeday

답변

1

그런 종류의 기능을 더 자주 사용하려면 프레임 워크를 사용하는 것이 좋습니다. 나는 개인적으로 jQuery를 제안하지만, Mootools 함수를 시도하고 있기 때문에, 당신은 그것을 시도 할 수있다. 둘 중 하나가 마음에 들지 않으면 Prototype을 시험해 볼 수 있습니다.

프레임 워크를 사용하지 않으려면 XMLHTTPREQUEST 개체를 사용해야합니다. W3C는 그것에 documentation 있습니다.

+0

HTML 페이지에 mootools를 포함 시켰으며 document.writeln() 부분을 삭제했습니다. 그래도 작동하지 않는 것 같습니다. 내 페이지에 댓글을 게시해야하지만 내 스크립트에는 여전히 오류가 있다고 생각합니다. 어쨌든 고마워. – Sierra313

+0

두 부분으로되어 있습니다. 먼저 서버가 새 데이터를 확인하고 저장하는지 확인해야합니다. 둘째로, 사용자가 모든 것이 올바르게되었다는 것을 알 수 있도록 클라이언트 페이지를 업데이트해야합니다. 영향을받는 html을 응답 객체에 다시로드하거나 상태 코드를 반환하고 게시 데이터를 사용하여 html을 업데이트 할 수 있습니다. – Mike

0

또한 DOM이 렌더링을 완료하면 전체 페이지 출력 의지가 빈)

document.writeln(myDataArray[16]); 

document.writeln을을 (사용하지 않습니다. jQuery 나 mootools 등을 사용하여 DOM을 조작하고 싶다. 또한 응답 객체는 Json에서 객체로 파싱되어야 할 필요가 있습니다.

0

XMLHttpRequest 개체로이 작업을 수행 할 수 있습니다. 다음은 시작하기위한 도우미 함수입니다.

function commentThis() { 

    var comment_object = { 
      "nid": 3, "comment": "Hello!This is my comment...", 
      "cid": 2, "subject": "My comment", "uid": 1 
      }, 
     data = { 
      "method": "comment.save", 
      "comment": comment_object 
      }; 

    ajax("http://my_site.com/?q=services/json", { 

     "type": "GET", 
     "data": data, 
     "success": function (data, status) { 

      var myDataArray = data['#data']; 
      document.writeln(myDataArray[16]); 

     } 

    }); 

};