[Ajax] fetch API - 사용법

2021. 3. 19. 17:52Front-end/Javascript

728x90
반응형

안녕하세요, 이번 시간에는 fetch API 사용법에 대해 알아보겠습니다.

지난시간에 Ajax가 무엇인지에 대해 개념적으로 알아보는 시간을 가졌는데요.

Ajax를 구현한 여러가지 방법 중 최신 방법이 fetch API 입니다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input type="button" value="fetch" onclick = "alert('hi')">
</body>
</html>

 ↑ fetch.html

이런 파일을 작성해보았습니다. fetch라고 써있는 버튼이 있고 클릭하면 hi라는 경고창이 뜨게 하는 코드입니다.

일단은 우리가 Ajax를 사용하기 위해서 필요한 코드를 하나하나 이해하기 전에 기계적으로 타이핑해보겠습니다.

 

<body>
    <input type="button" value="fetch" onclick = "
    fetch('css').then(function(response){
        response.text().then(function(text){
            alert(text);
        })
    })
    ">
</body>

fetch.html

 

그리고 css.txt 파일에 ' <h2>CSS</h2> CSS is .... ' 라고 적었습니다.

 

fetch.html을 실행하고, 개발자도구-network에서 확인해보면,

버튼을 누르기 전에는 fetch.html만 존재하고 있습니다.

이 상태에서 버튼을 누르면,

 

경고창이 뜨면서 경고창 안의 내용은 css.txt안의 내용으로 채워졌고 fetch.html 밑에 css라는 파일이 생긴 것을 확인할 수가 있습니다.

 

만약 html.txt의 내용으로 채우고 싶다면?

<body>
    <input type="button" value="fetch" onclick = "
    fetch('html').then(function(response){
        response.text().then(function(text){
            alert(text);
        })
    })
    ">
</body>

 간단하게 fetch('') 이 괄호안에 부분만 바꾸어주면 됩니다.

 

<body>
    <article>
    </article>
    <input type="button" value="fetch" onclick = "
    fetch('html').then(function(response){
        response.text().then(function(text){
            document.querySelector('article').innerHTML = text;
        })
    })
    ">
</body>

경고창이 아니라 내부에 글씨를 채우고 싶다면 article이라는 태그를 추가하고 querySelector를 이용해서 article을 가져온다음 innerHTML로 text를 대입하면 될 것입니다.

 

지금은 위의 코드가 무슨 의미인지 이해할 수 없지만, 일단은 '저 코드는 서버에게 html이라는 파일을 요청하고 응답이 끝나면 최종적으로 alert(text)가 실행되면서 서버가 응답해준 데이터가 text라는 변수에 담겨있다'는 사실만 숙지하면 됩니다.

 

다음시간부터는 위의 fetch API 코드의 의미를 더 자세하게 알아보도록 하겠습니다. (☆▽☆)

728x90
반응형