TIL

230322 TIL

bunbun2 2023. 3. 22. 21:27

html에서 ajax로 서버에 request 보낼 때,

빈 배열은 아예 제거하고 보내던 문제.

 

            data: {
              seatsBefore: seatsBeforeEditArrayGlobal,
              seatsAfter: [],
            },

이런식으로 보낸다고 하면,

 

server쪽에서는 

seatsAfter 배열이 아예 사라진 채로 들어온다.

 

근데 ajax가 아니라 thunderClient같은 api 테스트 어플리케이션에서는 빈 배열 송신이 잘 된다

 

 

 

이것때문에 골머리를 앓아서 범준튜터님께 헬프요청을 했더니

범준튜터님께서 해결을 해주셨다..! 갓범준.. 😂

 

 

우선 개발자도구 request header에 보면

기본적인 ajax 구성으로 전송 시,

Content-Type이 json인 상태로 전송되지 않고 x-www-form-urlencoded 인 상태로 전송이 되어

빈 배열을 소거시키는 작업이 이루어지는듯.

 

튜터님께서 ajax 공식문서도 찾아보고 구글링도 해보셨지만 이와 관련된 내용은 없었어서 튜터님께서도 처음 보는 경우라고 하셨었다 🙄 

 

해결방법은,

 

 

ajax 안에서 바로 data: { } 식으로 입력하지 말고,

dictionary 형태로 미리 sendData를 선언 하고,

JSON.stringify()로 JSON 문자열 형태로 변경한 뒤,

 

contentType을 application/json 형태라고 명시적으로 적어서 보내면 잘 된다!

 

굿!!!!!!!!!