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 형태라고 명시적으로 적어서 보내면 잘 된다!
굿!!!!!!!!!