1. AJAX
⇒ 서버로 요청을 보내는 코드
- 라이브러리 없이는 브라우저가 지원하는 XMLHttpRequest 객체를 이용해야 한다.
- AJAX 요청 시 Axios 라이브러리를 사용하는 게 편하다.
⇒ get 요청을 하는 코드(데이터 없이 서버로 보내는 경우)
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script>
// axios는 프로미스 기반 코드라 async/await를 사용할 수 있다.
axios.get('https://www.zerocho.com/api/get')
.then((result) => {
console.log(result);
console.log(result.data); // {}
})
.catch((error) => {
console.error(error);
});
(async() => {
try {
const result = await axios.get('https://www.zerocho.com/api/get');
console.log(result);
console.log(result.data); // {}
} catch (error) {
console.error(error);
}
</script>
⇒ post 요청을 하는 코드(데이터를 담아 서버로 보내는 경우)
- 전체적인 구조는 비슷하나 두 번째 인수로 데이터를 넣어서 보낸다.
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script>
(async () => {
try {
const result = await axios.post('https://www.zerocho.com/api/post/json', {
name : 'zerocho',
birth: 1994,
});
console.log(result);
console.log(result.data); // {}
} catch (error) {
console.error(error);
}
})();
</script>
2. FormData
⇒ FormData Post 요청으로 보내기
- Axios의 data 자리에 formData를 넣어서 보내면 됨
(async () => {
try {
const formData = new FormData();
formData.append('name', 'zerocho');
formData.append('birth', 1994);
const result = await axios.post('https://www.zerocho.com/api/post/formdata',
formData);
console.log(result);
console.log(result.data);
} catch (error) {
console.error(error);
}
})();
3. encodeURIComponent, decodeURIComponent
⇒ 주소창에 한글 입력시 인코딩 오류로 인해 서버가 처리하지 못하는 경우가 발생한다.
- encodeURIComponent로 한글을 감싸줘서 처리를 한다.
(async () => {
try {
const result = await axios.get(`https://zerocho.com/api/search/${encodeURIComponent('노드')}`);
// encodeURIComponent('노드') -> '%EB%85%B8%EB%93%9C'
decodeURIComponent('%EB%85%B8%EB%93%9C') // '노드'
console.log(result);
console.log(result.data);
} catch(error) {
console.error(error);
}
})();
'BackEnd > Node' 카테고리의 다른 글
[노드교과서] 섹션 3. http 모듈로 서버 만들기. 섹션 4. 패키지 매니저 (0) | 2023.12.19 |
---|---|
[노드교과서] 섹션 2. 노드 기본 기능 익히기 (0) | 2023.12.17 |
[노드교과서] 섹션 1. 알아두어야 할 자바스크립트 (0) | 2023.12.12 |
[노드교과서] 챕터0. Node.js 설치하기 (0) | 2023.12.01 |
[노드교과서] 챕터0. 노드의 정의 (0) | 2023.11.30 |