Axios Header에 특수문자가 있을경우 에러처리
axios를 사용할 때 아퍼스트로피(apostrophe)가 포함되어 있을 경우 에러처리를 어떻게 해야할까
axios를 사용할 때 아퍼스트로피(apostrophe)가 포함되어 있을 경우 에러처리를 어떻게 해야할까
axios를 이용해서 API 통신을 하던 도중, 전혀 통신이 되지 않거나 에러가 나는 경우를 발견했다.
문제는 axios header에 정보를 넘길 때, 의도치않게 특수문자 아퍼스트로피(’)가 포함되어 있을 경우 에러나 응답이 통신이 안되는 문제.
아퍼스트로피 (’)와 홑따옴표 (')는 다르다
|
|
위 이미지처럼 헤더 샘플이 들어가 있는 상황을 기대 했다.
|
|
아퍼스트로피가 포함되면 위 이미지처럼 아예 통신 자체가 안되는 경우도 있거나 에러가 나는 경우가 생길 수 있다.
웹사이트를 여기저기 검색해본 결과, 해당 문제는
특수문자로 인해 나타나는 에러는 개발을 하다보면 흔히 겪는 문제이며, axios만의 문제가 아니라 xhr을 이용하다보면 언제든지 겪을수 있는 문제다.
가장 간단한 해법은 해당 특수문자를 다른 문자로 replace해주는 방법이다.
|
|
위 이미지처럼 다른 문자로 치환해서 사용하면 간단하게 해결이 가능하며, 다른 기타 방법으로는
encodeURIComponent
를 이용해서 문자를 이스케이프 하는 방법이 있다. 사실 둘다 같은 맥락.
참고