jQuery JavaScript

익스플로러 400 에러 발생 - 한글 인코딩 처리를 통해 해결

안녕로봇 2017. 8. 14. 16:15

발생환경: 톰캣7, 익스플로러10


정보: Error parsing HTTP request header

 Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:189)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1028)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:745)


크롬에서는 문제가 없으나 익스플로러에서

콘솔에는 위와같이 표시되고

웹브라우저에는  400에러가 표시될때


JavaScript URI 부분에서 한글 인코딩 처리를 해주어야 한다


한글값이 넘어가는 부분에


기존:

"&koreanValue=" + eval("koreanValue"+checkRow).value;


수정:

"&koreanValue=" + encodeURI(eval("koreanValue"+checkRow).value);


처리를 통해 에러가 발생하기 않게 되었다.