解决SpringMVC put,patch,delete请求参数拿不到的问题
废话不多说,核心代码如下:
在web.xml中添加如下代码
<!-- 解决web端不能put,delete等请求的问题 -->
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<servlet-name>springMVC</servlet-name>
</filter-mapping>
<!-- 解决put,patch等请求,data数据拿不到的问题 -->
<filter>
<filter-name>HttpPutFormContentFilter </filter-name>
<filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HttpPutFormContentFilter </filter-name>
<servlet-name>springMVC</servlet-name>
</filter-mapping>
我的环境是Spring4.3;
第一个filter是解决 jQuery不能put,patch等请求,但是我测试用的 jquery-3.1.1.js 是可以put,patch请求的;可能是前端用的js版本低了吧,我也没研究;
但是put,patch等请求,data数据后台拿不到的问题,但是拼接到URL里面就可以拿到;第二个filter就解决这个问题;
顺便记录一个通过Spring解决跨域访问的问题
在spring-mvc.xml中添加如下代码:
<!-- 添加跨域访问 -->
<mvc:cors>
<mvc:mapping path="/**" allowed-origins="*" allowed-methods="*" allowed-headers="*" allow-credentials="false" max-age="3600" />
</mvc:cors>
参考:https://blog.csdn.net/edison_03/article/details/76150906
https://blog.csdn.net/lankezhou/article/details/72491019