1. 서버에 데이터 전송하기
1) URL 매개변수
데이터를 URL매개변수에 담아서 보내는 방법이다.
const url = '/example?name=lee&age=30'
fetch(url);
2) text
text 형식의 데이터를 보내는 방법이다. 서버의 req.body에 텍스트가 담겨온다.
const textData = 'Hello, World!';
const url = '/example';
fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'text/plain'
},
body: textData
});
3) JSON
json 형식의 데이터를 보내는 방법이다. 서버의 req.body에 json이 담겨온다.
const jsonData = {
name: 'lee',
age: 30
};
const url = '/example'
fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(jsonData)
});
이미 존재하는 form 에서 데이터를 가져와 jsonData를 만들 수도 있다.
const form = document.querySelector('form');
const formData = new FormData(form);
const jsonData = {};
formData.forEach((value, key) => {
jsonData[key] = value;
});
4) FormData
일반 데이터와 파일 데이터를 같이 보내는 방법이다. 서버에서는 multer 와 같은 미들웨어를 사용해야 요청을 받을 수 있다. 일반 데이터는 서버의 req.body 에 담기고, 파일 데이터는 req.file 에 담긴다.
(1) FormData 준비
① 기존 form 에서 가져오기
const form = document.querySelector('form');
const formData = new FormData(form);
② 새로 만들기
const formData = new FormData();
③ 데이터 추가하기
const textData = 'Hello, World!';
const jsonData = { name: 'lee', age: 30 };
const fileData = document.getElementById('file').files[0];
formData.append('message', textData);
formData.append('user', jsonData);
formData.append('file', fileData);
(2) 전송
const url = '/example';
fetch(url, {
method: 'POST',
body: formData
});
5) 기타: x-www-form-urlencoded, XML, protobuf, GrpahQl, SOAP 등이 있지만 특별한 경우가 아니면 쓸 일이 별로 없다.
2. 서버로 부터 응답 받기
fetch 전송하는 부분은 위에 기술했으니 생략한다.
1) 텍스트로 받기
async function fn_fetch () {
const response = await fetch(생략);
const result = await response.text();
}
2) JSON으로 받기
async function fn_fetch () {
const response = await fetch(생략);
const result = await response.json();
}
'컴퓨터 > Javascript' 카테고리의 다른 글
JSON과 JavaScript 객체의 차이 (0) | 2022.02.12 |
---|---|
Javascript 팝업 (0) | 2022.02.04 |
JavaScript Function 자바스크립트 함수 (0) | 2021.09.21 |
JavaScript 이벤트 발생 (0) | 2021.02.18 |
Javascript 윈도우 위치 window.location (0) | 2020.12.30 |