2015-01-29 6 views
2

encodeURIComponent을 사용하여 AJAX 호출을 통해 서버에 값을 전달하고 있지만 서버 측에서는 request.getParameter()이 자동으로 디코딩하지 않습니다. 어떻게 값을 디코딩 할 수 있습니까? 나는 봄 MVC를 사용하고있다.자바를 사용하여 EncodeURIComponet 디코드

$.ajax({ 
    type: "POST", 
    url: "test/editTest.do", 
    data: "id=" + encodeURIComponent(id) 
}) 

어떤 도움과지도 당신이 있는지 확인 할 수

<filter> 
    <filter-name>CharacterEncodingFilter</filter-name> 
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
    <init-param> 
     <param-name>encoding</param-name> 
     <param-value>UTF-8</param-value> 
    </init-param> 
    <init-param> 
     <param-name>forceEncoding</param-name> 
     <param-value>true</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>CharacterEncodingFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

또한 당신의 web.xml에 제 1 필터로 캐릭터 세트 필터를 추가

감사

답변

0

을 감상 할 수있다 귀하의 서버가 올바르게 구성되어 있습니다. 예를 들어 URIC 인코딩을 커넥터에 추가하려면

<connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> 

은 URI를 디코딩하는 데 사용되는 문자 인코딩을 지정합니다.

URLDecoder.decode(request.getParameter("id").replace("+", "%2B"), "UTF-8").replace("%2B", "+"); 

이 자바 끝에 decodeURIComponent을 시뮬레이션한다 : Tomcat을 사용하지 않는 경우 당신은

+0

빠른 응답을 주셔서 감사합니다. 이미 사용했으나 도움이되지 않습니다. – user3132347

+0

다른 제안으로 답변을 편집했으며, 아약스 요청은 기본적으로 UTF-8을 추가하므로 서버 구성이 될 수 있습니다. 그것은 faling입니다. 데이터가 제대로 디코딩되지 않았 음을 알 수 있습니까? DB? –

+0

당신이 말한 것처럼 서버 측에 들어가는 값이 코드화 된 형태로되어 있습니다. – user3132347

0

당신이 자바에 다음과 같은 시도 할 수있는 서버에 대한 동등한를 찾아야한다. Java의 URLDecoder는 더하기 기호를 공백으로 디코딩하여 바꾸기 기능을 수행합니다.

+0

@AirCool이 답을 주셔서 감사합니다. 괜찮습니다. 그러나 여러 요청에서 Ajax 호출을 전달하고 모든 호출을 처리하려고합니다. 다중 액션 ...이 방법을 사용하는 것은 표준적인 방법이 아닙니다. 나는 마스터 노예가 말한 것과 같은 것이 필요합니다. 슬프게도 잘 작동하지 않습니다. : ( – user3132347

+0

그럴 경우, '필터'를 사용할 수 있습니다. Java 끝 및 각 요청이 필터를 통해 가로 챌 수 있는지 확인하십시오.이 메서드를 통해 요청 매개 변수 값을 수정할 수 있습니다. 그 작동합니까? – ArinCool

+0

GET 메서드를 사용하면 디코딩 필요가 없습니다. POST 사용 방법 거기 아무 build-in 기능 도이 문제를 해결하기 위해 거기에있다, 그것은 보인다. 제안 u는 좋았다. 그러나 당신은 그것을 잘 설명 할 수있다. 나는 완전히 이것에 새로운 꿀벌이다 – user3132347