[error] java.lang.IllegalArgumentException: 요청 타겟에서 유효하지 않은 문자가 발견되었습니다. 유효한 문자들은 RFC 7230과 RFC 3986에 정의되어 있습니다.

로컬에서는 멀쩡히 잘 실행되던 기능이

배포 한 후에 갑자기 되지 않기 시작했다.

 

콘솔창을 보니 api에서 400에러가 발생했다.

 

대체 어째서?

 

처음 보는 에러...

 

url을 살펴보면 이런식으로 파라미터가 넘어가고 있음

extra_inplan_status_search_arr[]=STAND&extra_inplan_status_search_arr[]=ING&...

이 부분에서 [] 이 부분이 문제가 될 수 있다고함(gpt 피셜임)

 

그래서 검색을 해봤다.

https://jihyeon33.tistory.com/53

 

java.lang.IllegalArgumentException: 요청 타겟에서 유효하지 않은 문자가 발견되었습니다. 유효한 문자들

에러 : '업데이트하기' 버튼 클릭시 다음 페이지로 이동해야 하는데, 이동하지 않고 아래와 같은 에러가 찍힘. java.lang.IllegalArgumentException: 요청 타겟에서 유효하지 않은 문자가 발견되었습니다.

jihyeon33.tistory.com

해당 블로그 글을 읽었다.

	function infoSelect() {
        apiGet<InManualVO[], InManualVO>("/in/manual/inmanual.do", {
            ...
            extra_inplan_status_search_arr: searchPlanStatus,
            grid_type: "M",
        }).then(res => {
            ...

 

하지만 프론트쪽 코드를 보면 extra_inplan_status_search_arr의 변수에 나는 대괄호를 붙여준적이 없다...

하지만 어째서인지 계속 변수명 뒤에 괄호를 붙여서 요청이 가고 있음.

 

혹시 몰라 직접 파라미터를 타이핑을 쳐서 get요청을 보내보니 잘감

즉 괄호가 문제가 맞다는 뜻

 

해결방법은

{톰캣설치폴더}/conf/server/xml에 다음부분 추가

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               maxParameterCount="1000"
		relaxedQueryChars="[]()^|&quot;" <--- 이부분 추가
               />

 

지피티가 자꾸 이건 근본적인 해결이 아니다 어쩌구 하는데

사수분께 여쭤보니 그냥 그렇게 해결하면 되는거라고 하셨다....

 

끝.

'etc' 카테고리의 다른 글

powershell로 eks접속하기  (0) 2025.01.13