我通过 AJAX 调用使用 encodeURIComponent
将值传递给服务器,但在服务器端 request.getParameter()
不会自动对其进行解码。我如何解码该值?我正在使用 Spring MVC。
$.ajax({
type: "POST",
url: "test/editTest.do",
data: "id=" + encodeURIComponent(id)
})
任何帮助和指导,我们将不胜感激
谢谢
最佳答案
在 web.xml 中添加字符集过滤器作为第一个过滤器
<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>
此外,您可以确保您的服务器配置正确,例如为 tomcat 添加 URIEncoding 到连接器
<connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
将指定用于解码 URI 的字符编码。如果您不使用 tomcat,您应该为您的服务器找到等效的东西
关于jquery - 在java中解码EncodeURIComponent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28213238/