프로젝트 진행 중 백엔드 팀원과 요청, 응답을 테스트 하는 과정에서 이슈가 있었다.
GET 요청을 통해 조회를 시도했지만 클라이언트 쪽에서 에러가 발생한 것이다.
POSTMAN으로 요청을 보내는 URL을 타고 들어가면 분명 조회가 잘 되는데..axios의 형식을 바꿔 보기도하고, fetch로 해보고 할 수 있는 것들을 모두 시도해본 후에야 깨달았다. GET요청을 할 땐 POST나 PUT과 같은 다른 메서드와 달리 클라이언트에서 서버로 데이터를 보낼 수 없는 것이었다. 애초에 백엔드 쪽에서 요청 받을 데이터를 지정하지 않고 params를 사용해야 했었다. 이와 같은 경험을 토대로 미흡했던 HTTP 통신 부분을 제대로 짚고 넘어가고자 마음 먹었다.
const options = {
method: "POST",
url: "http://www.example.com",
headers: {
"Accept": "application/json",
"Content-Type": "application/json; charset=UTF-8"
},
data: {
key: value
}
};
axios(options);
const url = "http://www.example.com";
const options = {
method: "POST",
mode: "cors",
headers: {
"Accept": "application/json",
"Content-Type": "application/json; charset=UTF-8"
},
body: JSON.stringify({
key: value
})
};
fetch(url, options);
웹 개발을 하기 전에 HTTP의 기본 개념을 어느정도 학습했다면 에러와 맞서기가 훨씬 수월했을 거란 생각이 들었다. 꾸준히 프로젝트를 진행하면서 서버와의 통신에 익숙해지는 수밖에 없다.