Frontend/AJAX

01. AJAX (jQuery AJAX 관련 메소드, $.ajax()함수, $.get() 함수, $.post 함수)

개발개발빈이 2022. 6. 28. 21:24

○ AJAX (Asynchronous JavaScript And XML)

    - 웹페이지 전체를 reload하지 않고, 일부분만 새로고침
    - 비동기식 통신(문자단위 통신)
    - 전체 페이지는 1번만 불러오고, 그 이후에는 문자단위(비동기)로 통신이 이루어 진다
    - 자바스크립트의 XMLHttpRequest객체를 이용하지만, 
      사용문법이 복잡해서 jQuery 오픈소스의 ajax() 함수를 많이 이용한다

 

 

○ AJAX 

    - 페이지 새로고침 없이 서버에 요청

    - 서버로부터 데이터를 받고 작업을 수행

 

○ jQuery AJAX 관련 메소드

    - $.ajax()
    - $.get()
    - $.post()
    - 응답받은 메시지를 처리하는 함수를 callback함수라 한다

 

$.ajax() 함수

    - 형식) $.ajax()({name:value, name:value, name:value})

 

        1) 뷰단

<button id=btn>서버에서 응답받기</button>

<script>
  $("btn").click(function(){
    $.ajax({
             url:"message.do",  //요청명령어 
             type:"get",        //get방식
             datatype:"text",   //응답메시지 타입 
             error:function(error){//error callback함수
                alert("에러: " + error);
             },
             success:function(result){//success callback함수
                alert("성공: " + result); //result : 서버가 응답해준 메시지
              }
    });//ajax() end
  });//click end
</script>

 

        2) 컨트롤러

@RequestMapping(value = "/message.do", method = RequestMethod.GET)
public void message(HttpServletRequest req, HttpServletResponse resp) {

    try {
        //단순문자열과 UTF-8 인코딩 방식
        resp.setContentType("text/html; charset=UTF-8");

        //요청한 사용자에게 응답하기 위한 출력 객체
        PrintWriter out=resp.getWriter();
        out.println("서버에서 응답해 준 메시지: ");
        out.println("무궁화 꽃이 피었습니다 ");
        out.flush();//out객체에 남아 있는 버퍼의 내용을 클리어
        out.close();

    }catch (Exception e) {
        System.out.println("응답실패: " + e);
    }

}//message() end

 

$.get() 함수

    - AJAX를 GET방식으로 요청하는 방식

    - 형식) $.get()({"요청명령어", callback함수})

<script>
    $("#btn").click(function(){

        $.get("message.do", responseProc);

    });//click() end

    function responseProc(result) {
        $("#panel").append(result);
    }//responseProc() end
</script>

 

○ $.post() 함수

    - AJAX를 POST 방식으로 요청하는 방식

    - 형식) $.post()({"요청명령어", 전달값, callback함수})

<script>
    $("#btn").click(function(){

        $.post("message.do", "전달 메시지", responseProc);

    });//click() end

    function responseProc(result) {
        $("#panel").append(result);
    }//responseProc() end
</script>