์น ํ์ด์ง๋ ์๋ก๊ณ ์นจ ์์ด ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค.
์ด ๋ฐฉ์์ด ๋ฐ๋ก AJAX๋ค.
1. AJAX
1) AJAX๋?
AJAX(Asynchronous JavaScript And XML)๋ ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ์ง ์๊ณ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ธฐ์ ์ด๋ค.
๊ธฐ์กด ๋ฐฉ์
- ์์ฒญ → ์ ์ฒด ํ์ด์ง ์๋ก๊ณ ์นจ → ์๋ต
AJAX ๋ฐฉ์
- ์์ฒญ → ๋ฐ์ดํฐ๋ง ์๋ต → ํ๋ฉด ์ผ๋ถ๋ง ๋ณ๊ฒฝ
์ฆ, ๋น๋๊ธฐ ํต์ ๋ฐฉ์์ด๋ค.
2. AJAX ๊ด๋ จ ๋ฉ์๋
jQuery๋ AJAX๋ฅผ ๊ฐ๋จํ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ค.
1) AJAX ๊ด๋ จ ๋ฉ์๋๋ค
โ $.ajax()
๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ๋ฉ์๋
$.ajax({
url: "data.json",
type: "GET",
dataType: "json",
success: function(data) {
console.log(data);
},
error: function(error) {
console.log("์๋ฌ ๋ฐ์");
}
});
์ต์ ์ค๋ช
| ์ต์ | ์ค๋ช |
| url | ์์ฒญ ์ฃผ์ |
| type | GET / POST |
| data | ์๋ฒ๋ก ๋ณด๋ผ ๋ฐ์ดํฐ |
| dataType | ์๋ต ๋ฐ์ดํฐ ํ์ |
| success | ์ฑ๊ณต ์ ์คํ |
| error | ์คํจ ์ ์คํ |
โก $.get()
$.get("data.json", function(data) {
console.log(data);
});
GET ์์ฒญ ์ ์ฉ
โข $.post()
$.post("server.php", { name: "John" }, function(data) {
console.log(data);
});
POST ์์ฒญ ์ ์ฉ
โฃ $.getJSON()
$.getJSON("data.json", function(data) {
console.log(data);
});
JSON ๋ฐ์ดํฐ ์ ์ฉ
3. AJAX๋ก JSON ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉํ๊ธฐ
JSON์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๋ฐ์ดํฐ ํ์์ด๋ค.
[
{"name": "Tom", "age": 20},
{"name": "Jane", "age": 25}
]
๋ฐ์ธ๋ฉ ์์
$.getJSON("data.json", function(data) {
let output = "";
$.each(data, function(index, item) {
output += "<p>" + item.name + " - " + item.age + "</p>";
});
$("#result").html(output);
});
- $.each() → ๋ฐ๋ณต ์ฒ๋ฆฌ
- html() → ํ๋ฉด ์ถ๋ ฅ
4. AJAX๋ก XML ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉํ๊ธฐ
XML๋ ์ง์ ๊ฐ๋ฅํ๋ค.
<people>
<person>
<name>Tom</name>
<age>20</age>
</person>
</people>
XML ๋ฐ์ธ๋ฉ ์์
$.ajax({
url: "data.xml",
dataType: "xml",
success: function(data) {
$(data).find("person").each(function() {
let name = $(this).find("name").text();
let age = $(this).find("age").text();
$("#result").append("<p>" + name + " - " + age + "</p>");
});
}
});
5. ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ณด์ ์ ์ฑ ๊ณผ ์ธ๋ถ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ
๋ธ๋ผ์ฐ์ ์๋ Same-Origin-Policy(๋์ผ ์ถ์ฒ ์ ์ฑ )๊ฐ ์๋ค.
์ฆ,
- ๋ค๋ฅธ ๋๋ฉ์ธ
- ๋ค๋ฅธ ํฌํธ
- ๋ค๋ฅธ ํ๋กํ ์ฝ
์์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉด ์ฐจ๋จ๋๋ค.
โ CORS(Cross-Origin Resource Sharing)
์๋ฒ์์ ํ์ฉํด์ผ ์ธ๋ถ ์์ฒญ์ด ๊ฐ๋ฅํ๋ค.
์๋ต ํค๋์ ์๋ ์ฝ๋ ๋ช ์
Access-Control-Allow-Origin: *
๋๋ ํน์ ๋๋ฉ์ธ ์ง์
โก JSONP(๊ตฌ๋ฒ์ ๋ฐฉ์)
CORS ์ด์ ์๋ JSONP๋ฅผ ์ฌ์ฉํ๋ค.
$.ajax({
url: "https://example.com/data",
dataType: "jsonp"
});
ํ์ฌ๋ ๊ฑฐ์ ์ฌ์ฉ๋์ง ์๋๋ค.
'Front-End > JavaScript | jQuery | AJAX' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 10. ์ ์ด์ฟผ๋ฆฌ(jQuery) ํ๋ฌ๊ทธ์ธ (0) | 2026.02.17 |
|---|---|
| 08. ๋ค์ํ ํจ๊ณผ์ ์ ๋๋ฉ์ด์ (0) | 2026.02.17 |
| 07. ์ ์ด์ฟผ๋ฆฌ(jQuery) ์ด๋ฒคํธ (0) | 2026.02.17 |
| 06. ์ ์ด์ฟผ๋ฆฌ(jQuery) ๋ฌธ์ ๊ฐ์ฒด ์ ํ์์ ์กฐ์๋ฒ (0) | 2026.02.17 |
| 05. ํจ์(Function) (0) | 2026.02.16 |