<script>
$(function () {
$('#loadButton').click(function () {
$.ajax({
url: 'list_ajax.html', //요청을 보낼 URL
type: 'GET',
success: function (data) {
$('#result').html(data);
}, //응답성공
error: function (error) {
alert('요청오류');
}, //응답실패
});
//제이쿼리의 AJAX 요청을 수행하는 함수, 서버에 비동기적으로 요청을 보내고, 응답을 처리
});
});
</script>
</head>
<body>
<h2>AJAX 통신 예제</h2>
<button id="loadButton">데이터 불러오기</button>
<br />
<div id="result"></div>
</body>
<body>
<section>
<article>
<table border="1" style="width: 50%">
<tr>
<th>이름</th>
<th>점수</th>
</tr>
<tr>
<td>이순신</td>
<td>90</td>
</tr>
<tr>
<td>강감찬</td>
<td>80</td>
</tr>
<tr>
<td>을지문덕</td>
<td>70</td>
</tr>
</table>
</article>
</section>
</body>
서버와 비동기적으로 데이터를 주고 받는 자바스크립트 기술
원하는 데이터 url + GET 요청 시, 브라우저는 새로고침을 통해 응답하지만
AJAX는 새로고침 없이 데이터를 요청하는 자바스크립트 기술
<script>
$(function () {
$('#sendButton').click(function () {
let username = $('#username').val();
let password = $('#password').val();
$('#result').append('<div>회원이름 : ' + username + '님 환영합니다.<div>');
});
});
</script>
</head>
<body>
<h2>AJAX 예제</h2>
<label for="username">회원 이름 : </label><br />
<input type="text" id="username" placeholder="회원이름" /> <br />
<label for="password">비밀번호 : </label><br />
<input type="text" id="password" placeholder="비밀번호" /> <br />
<br />
<button id="sendButton">로그인</button>
<br />
<hr />
<div id="result"></div>
</body>

<script>
$(function () {
$('#loadButton').click(function () {
$.ajax({
//비동기적으로 데이터 불러옴
url: 'dummy.json',
type: 'GET',
dataType: 'json',
success: function (data) {
//성공하면 dummy가 data에 들어감
console.log(data);
$('#titleLayout').html('<h2>' + data.title + '</h2>');
//dummy.title값인 안녕하세요가 h2끼고 들어간다
$('.subjectLayout').html('<h2>' + data.subject + '<h2>');
let list = data.list;
let tableTag = '';
/*
for (let i = 0; i < list.length; i++) {
tableTag += '<tr><td>' + list[i].subject + '</tr><td>' + list[i].content + '</td></tr>';
}*/
$.each(list, function (index, row) {
tableTag += '<tr><td>' + row.subject + '</td><td>' + row.content + '</td></tr>';
});
$('table').html(tableTag); //리스트 안에 있는 내용(tr/td형태로)이 다 들어감
},
});
});
});
</script>
</head>
<body>
<input type="button" value="로드" id="loadButton" />
<div id="titleLayout"></div>
<div class="subjectLayout"></div>
<table style="width: 100%; border: 1px solid"></table>
</body>
{
"title": "안녕하세요",
"subject": "반갑습니다",
"list": [
{
"subject": "제목입니다1",
"content": "제목입니다1"
},
{
"subject": "제목입니다2",
"content": "제목입니다2"
},
{
"subject": "제목입니다3",
"content": "제목입니다3"
}
]
}

$(function () {
$('#loadButton').click(function () {
$.ajax({
url: 'dummy.json',
type: 'GET',
dataType: 'json',
success: function (data)
$('#titleLayout').html('<h2>' + data.title + '</h2>');
$('.subjectLayout').html('<h2>' + data.subject + '<h2>');
$.each(list, function (index, row) {
tableTag += '<tr><td>' + row.subject + '</td><td>' + row.content + '</td></tr>'; });
$('table').html(tableTag);
.each : 반복문
<script>
$(function () {
$.getJSON('stdinfo.json', function (data) {
//.getJSON() : 지정된 url에서 JSON 데이터를 읽어와 콜백함수와 함께 수행
let items = [];
$.each(data, function (key, val) {
items.push("<li id='" + key + "'>" + val + '</li>'); //하나의 배열을 만들어놓고 그 안에다가 푸시하겠다.
//<li id="name"> val=홍길동 </li> 이렇게 배열 순서대로 불러온다.
});
$('<ul/>', {
class: 'my-new-list',
html: items.join(''), //위의 배열 요소들을 조인하겠다.
}).appendTo('body');
});
});
</script>
</head>
<body>
<h2>JSON 파일 읽어오기</h2>
</body>
{
"name": "홍길동",
"age": 30,
"occupation": "소프트웨어 개발자",
"location": "서울, 대한민국"
}
<script>
$(function () {
$('#getDogImage').click(function () {
// ID 수정
$.ajax({
url: 'https://dog.ceo/api/breeds/image/random',
type: 'GET',
success: function (result) {
$('#dogImage').attr('src', result.message); //속성추가
},
error: function (error) {
alert('요청오류');
},
});
});
});
</script>
</head>
<body>
<h2>강아지 이미지 가져오기</h2>
<button id="getDogImage">강아지 이미지 가져오기</button>
<!-- ID 수정 -->
<hr />
<img id="dogImage" alt="개 이미지" />
</body>

1.URI로 강아지 랜덤 사진 API를 가져온다.
2. success 콜백 함수는 요청이 성공했을때 실행한다.
3. 서버의 답변(강아지사진) → result 인수로 받습니다
$('#dogImage').attr('src', result.message);
<script>
$(function () {
let api = '075727d1159e057dcbf7c63b5f5e3dac';
let city = 'Seoul'; //이 파라미터값이 런던으로 바뀌거나 유저 api가 바뀔 수 있기 때문에 한 번에 url을 입력하지 않는다 = 유동적 운영
let apiUrl = 'https://api.openweathermap.org/data/2.5/weather?q=' + city + '&appid=' + api;
$.ajax({
url: apiUrl,
type: 'GET',
success: function (result) {
let tempInCelsius = Math.round(result.main.temp - 273.15); //현재 온도를 받아온다
$('#result').html('<h3>' + city + '의 현재 온도는 ' + tempInCelsius + '°C입니다.</h3>');
},
error: function (error) {
alert('잘못된 요청입니다.');
},
});
});
</script>
</head>
<body>
<h2>날씨 API 데이터 가져오기</h2>
<div id="result"></div>
</body>