<aside> ๐ก #ajax #fetch #request #response
</aside>
๊ฐ์
Asynchronous Javascript and XML์ ์ฝ์๋ก ๋น๋๊ธฐ ํต์ ์ ๊ฐ๊ฒฐํ ๋ฌธ๋ฒ์ผ๋ก ์ฌ๊ตฌ์ฑํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ํ์ด์ง๋ฅผ ๋ค์ ๋ก๋ํ ํ์ ์์ด ๋์ ์ผ๋ก ์์ฒญ๊ณผ ์๋ต์์ ์ ํ ์ ์์ด HTML๊ณผ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฆฌํ ์ ์๊ฒ ๋์์ต๋๋ค.
์๋ ๋ฐฉ์
Ajax๋ ์๋ก์ด ๊ธฐ์ ์ด ์๋๋๋ค. ๋ด๋ถ์ ์ผ๋ก XMLHttpRequest
๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ XML ํ์์ผ๋ก ํ์ด์ง์ ์ ๋ณด๋ฅผ ์ปดํ์ผ ํฉ๋๋ค. ์์ฒญ์ ์ฌ์ฉ์๊ฐ ์ ์ํ HTTP ๋ฉ์๋์ ํํ๋ก ์ ์ก์ด ๋๋ฉฐ, ์๋ต์ด ๋์ฐฉํ ๋์ ๋ฑ๋ก๋ ์ฝ๋ฐฑํจ์๊ฐ ํธ์ถ์ด ๋์ด ํด๋ผ์ด์ธํธ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
์ผ๋ฐ form์ ์ด์ฉํ ๋ฌธ์
์ฅ์
์์
์ผ๋ฐ form
<form id="userDelete" method="post">
{% csrf_token %}
<input type="submit" value="๊ณ์ ์ญ์ ํ๊ธฐ" />
</form>
Ajax(fetch ์ฌ์ฉ)
fetch("url", {
method: "DELETE",
headers: {
"Content-Type": "application/json",
"X-CSRFToken": getCookie("csrftoken")
}
})
.then(res => res.json())
.then(data => {});
Extensible Markup Language(XML)๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ํ๋ ๊ท์น์ ์ ๊ณตํ๋ ๋งํฌ์ ์ธ์ด์ ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ ์กํ๋ ๋ฐ ์์ฃผ ์ฌ์ฉํฉ๋๋ค. ํ ์คํธ ๊ธฐ๋ฐ ํ์์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ์ง, ๋์์๊ณผ ๊ฐ์ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ ์ ์ฅ ์๋ ์ ํฉํ์ง ์์ต๋๋ค. (JSON, HTML ํจ๊ป ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.) XML ๋ฌธ์๋ ์ฌ๋ฌ ์์คํ ๊ฐ์ ๊ณต์ ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ ๋ฐ ์ ์ฅํ ์ ์์ต๋๋ค.
HTML | XML | |
---|---|---|
์ฉ๋ | ๋ฐ์ดํฐ ํ์ | ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ์ ์ก |
ํ๊ทธ | ๋ฏธ๋ฆฌ ์ ์๋ ํ๊ทธ | ๊ณ ์ ํ ํ๊ทธ๋ฅผ ๋ง๋ค๊ณ ์ ์ ๊ฐ๋ฅ |
๊ตฌ๋ฌธ ๊ท์น | ๋์๋ฌธ์ ๊ตฌ๋ถx | ๋์๋ฌธ์ ๊ตฌ๋ถ |