개발/Error note
[Javascript] formdata를 json으로 보낼 때 "=="이 자꾸 ":"로 변해서 key로 인식해버리는 현상
이나당
2024. 2. 20. 08:25
ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ 배겐도에서 자꾸 제대로된 서식이 아니라고 한다. 502에러로 반송됐다.
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/015.gif)
배갠도 개발자분께서 req.body에 들어오는 데이터가 이상하다고 해서 같이 확인해봤다.
![](https://blog.kakaocdn.net/dn/bEs7V5/btsB7TqpPyE/oEjja9YtQxRDokG3nqI8ck/img.png)
브라우저 개발자도구 - 네트워크에서 파싱해서볼때는 별문제없었는데 (그래서 나는 제대로 보내고 있는줄 알았지..)
![](https://blog.kakaocdn.net/dn/kLKzh/btsCgr0g1np/J05lCIFpxtnBzLKXkoH60K/img.png)
![](https://blog.kakaocdn.net/dn/byaLMt/btsB7SZmK2X/sY1e4FSkNTk1nfaXQSY7z0/img.png)
분명 브라우저 콘솔이나 파싱데이터로 보면 9k=인데
파싱없이 바로 확인해보니
![](https://blog.kakaocdn.net/dn/WfNKx/btsCexNrE7D/kCXCylVD1CdWM0m2fykxMk/img.png)
중간에 :를 키로 인식해서 잘림
{
"name": "홍길동",
"age":"30"
}
이거를
{
"name": "홍길:동",
"age":"30"
}
// : 이 들어가니 얘를 키로 인식해버린다
{
"name": "홍길":"길동",
"age":"30"
}
아니 대체 왜 :이 되지 싶어서 서명을 오만번 했다.
공통적으로는 어떤 특정 각도에서 "=="이 들어가면 ":"으로 바뀌어 버린다는 것.
처음에는 ==을 다른걸로 바꾸었더니 sign 이미지가 깨져버려서,
=을 유니코드로 바꾸자! 해서 gpt한테 물어보고 아래처럼 사용했다.
![](https://blog.kakaocdn.net/dn/r93pR/btsB7RzcZ9j/kUkVeRn4Bvs7mQzELZ7Vc1/img.png)
signData.replaceAll("=", "U+003D");
그랬더니 데이터도 제대로 넘어가고, 서명이미지도 문제없이 출력됐다.
정말 알다가도 모를 (모를이 더 크지만..) 컴퓨터
![](https://blog.kakaocdn.net/dn/RVz1K/btsDnhJC5Y8/dSDoy9rhLMhEBeMTvJKghk/img.jpg)
+ 백엔드에서도 U+003D를 DB에 저장할 때 다시 바꿔줘야함 ㅎㅎ..
반응형