본문 바로가기
jquery

ajax / json

by 신방동불주먹 2022. 11. 21.

ajax : Asynchronous JavaScript and XML

- xml형식의 데이터 비동기 처리(작업의 요청 순서와 상관없이 처리되는 방식)

- json(JavaScript Object Notation)

: 배열이나 객체형식으로 작성되어지는 데이터

: 문자형식의 데이터를 효율적으로 주고 받는 구조 

 

<json 형태 데이터 형식으로 구성된 값(문자형 데이터)>

 

{}:객체 (key ,value형태)

{
	"name":"리미","age":28, "address":"서울"
 }
 
 //접근 방식 ; object.name / object["name"]

[]:배열

[
	"html","java","javascript"
 ]
 
 //접근방식 : object[indexNumber]

 

중첩구조 

[{}] 배열안에 객체

[
	{"city":"서울","hotpalce":"홍대"},
    {"city":"부산","hotpalce":"해운대"},
    {"city":"제주도","hotpalce":"성산일출봉"}
]

//접근방식 : object[indexNumber].city / object[indexNumber]["city"]

{[]} 객체 안에 배열

{
	"firstName":"김",
    "lastName":"유림",
    "books":["java","html","jsp"]
 }
 
 //접근방식 : object.book[indexNumber]

 

 

기본형태

$.ajax({
	type:'post', //타입 (get,post,put 등등)
	url:'/test', //요청할 서버url
	async : true, //비동기화 여부 (default:true)
	headers:{//http header
	"Content-Type":"application/json",
	"X-HTTP-Method-Override" : "POST"
	},
	dataType:'text', //데이터 타입 (html,xml,json,text)등등
	data:JSON.stringfy({//보낼 데이터(Object, String, Array)
	"no":no,
	"name":name,
	"nick":nick
	}),
	success :function(result) {//결과 성공 콜백함수
		console.log(result);
	},
	error : fucntion(request,status,error){//결과 에러 콜백 함수
		console.log(error)
	}
})

 

 

 

비동기 통신 방식으로 순차 처리가 아니기 때문에 버튼 클릭 전 <p> 태그가 보인다

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
<script type="text/javascript">
	$(function(){
		$("#buttonSubmit").on("click",function(){
			$.ajax({
				url:'./ajaxServer.jsp',
				type:'post',
				data:{nickName:'리미'},//여기까지 서버 쪽으로 보낼 때 필요한 데이터
				dataType:'json', //여기부터는 받을 때 필요한 데이터
				success:function(data){ //data={"nickName":"리미"} (data:json형태로 넘어온 정보를 서버가 보내는 정보를 받을 매개변수)
					console.log(data);
					console.log("요청성공");
					$("#nickname").text(data.nickName)
				}
				
				
			});
		});		
	});
</script>
</head>
<body>
	<input id="buttonSubmit" type="button" value="제출">
	<h1 id="nickname"></h1>
	<p>ajax 통신성공 </p>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	request.setCharacterEncoding("utf-8");
	String nickName = request.getParameter("nickName");
%>

<!-- 서버페이지는 요청을받아서 데이터를 보내주기만 하기 때문에 태그정보 필요없다. -->
{
	"nickName":"<%=nickName %>"    <!-- "nickName":"리미" -->
}

'jquery' 카테고리의 다른 글

JQuery_객체조작  (0) 2022.11.21
JQuery_속성 탐색 선택자  (0) 2022.11.21
JQuery_배열 관련 메서드  (0) 2022.11.21
JQuery_효과 메서드  (0) 2022.11.18
JQuery_탐색 선택자  (0) 2022.11.17