Purple Bobblehead Bunny

Backend/AJAX

[AJAX] JQuery 통신 데이터 전송 GET,POST,JSON,

준영어린이 2023. 2. 26. 15:51

 

 

 

JQuery와 AJax를 활용하여 페이지에서 데이터를 주고 받을 수 있다. 

JQuery를 사용하기 위해 script 주소를 추가 해 줘야 한다.

 

<script type="text/javascript" src="http://code.jquery.com/jquery-3.5.1.min.js"></script>

 


🚀  AJax   GET, POST 방식으로 데이터 보내기

 

 

 

데이터를 받아오는 가장 기본적인 형식이다.

$(document).ready(function(){
	$.ajax({
		type:         // 데이터 전송 타입
		url :         // 데이터를 주고 받는 파일 주소
		data:         // 보낼 데이터 (데이터 값을 보내지 않을 경우 명시하지 않아도 된다)
		dataType:     // 문자 형식으로 받기 (데이터를 받아오지 않는 경우 명시하지 않아도 된다)
		success: function(result){
			
		},
		error:function(){  
            
		}
	})
});

 

 

1. GET

 

$(document).ready(function(){
	$.ajax({
		type: 'get',   // GET 방식
		url : 'TEST.jsp',  // 이동할 파일 주소
		dataType:'text',   // 문자형식으로 받기
		success: function(data){
            // function(data)를 쓰게 되면 전달받은 데이터가 data안에 담아서 들어오게 된다. 
			alert(data);   
		},
		error:function(){
			alert('error');
		}
	})
});

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
TEST

데이터를 주고 받는 파일인 TEST.jsp 에 다음과 같이 작성하고 위 코드를 실행을 시키면

alert창으로  'TEST'라는 결과 값이 들어오게 된다.

 

2. POST

 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script> <!--jQuery 불러오기-->
    <script>
        $(document).ready(function(){ 
            $("#buttonSubmit").on('click',function(){ // submit 이벤트 지정
                $.ajax({
                    url: "./result.jsp", // 이동 할 파일 주소
                    type: "POST", 
                    data: $("#theForm").serialize(), // 전송 데이터
                    dataType: 'json', // json 타입으로 받기
                    success: function(res){ 
                        alert("success");
                        $("#result_name").html(res.name);
                        $("#result_ph_number").html(res.ph_number);
                        $("#result_address").html(res.address);
                    },
                    error:function(er){ 
                        alert("실패 원인 : " + er);
                    }
                });
            });
        });
    </script>
</head>
<body>
    <form id="theForm">
        <table border="1">
            <tr>
                <th>이름</th>
                <td><input type="text" id="name" name="name"></td>
            </tr>
            <tr>
                 <th>번호</th>
                 <td><input type="text" id="ph_number" name="ph_number"></td>
            </tr>
                <th>주소</th>
                <td><input type="text" id="address" name="address"></td>
        </table>
        <br>
        <input id="buttonSubmit" type="button" value="제출">
    </form>
    <br>
    <table border="1">
        <tr>
            <th>[확인] 이름</th>
            <td style="width: 200px;"><span id="result_name"></span></td>
        </tr>
        <tr>
            <th>[확인] 번호</th>
            <td><span id="result_ph_number"></span></td>
        </tr>
            <th>[확인] 주소</th>
            <td><span id="result_address"></span></td>
    </table>
</body>
</html>

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	request.setCharacterEncoding("utf-8");

	String name = request.getParameter("name");
	String ph_number = request.getParameter("ph_number");
	String address = request.getParameter("address");
%>
{
	"name" : "<%=name%>",
	"ph_number" : "<%=ph_number%>",
	"address" : "<%=address%>"
}

 

 

 

🚀 JQUERY로 AJax 통신할 때 기억할 것 !

  • type : 보내는 방식
  • url    : 데이터 보내는 주소
  • data : 보내려는 데이터 → "id" : "userid" 처럼 json 형식으로 보내는 것이 좋음
    • json 형태로 보내게 되면 받는 쪽에서는 파라미터에서 넘어온 값처럼 인식하고, jsp에서는 getParameter("파라미터명")을 사용할 수 있다.
  • dataType : 응답 데이터 형식
  • async      : 비동기여부  → true, false
  • success   : ajax 통신 성공 시 실행 함수. 해당 매개변수에는 ajax를 통해 응답받은 데이터가 들어온다
  • error         : ajax 통신 실패 시 실행 함수
  • complete  : 설공 실패와 상관없이 실행 함수
  • beforeSend : ajax 통신 보내기 전 실행 함수

'Backend > AJAX' 카테고리의 다른 글

[AJAX] AJAX가 뭐야?  (0) 2023.02.06