解决Spring MVC中put和delete请求不能获取到前端页面传来数据的问题
作者:互联网
springMVC中的非简单请求
在发请求加入data字段
$(function () {
$("#btnPost").click(function () {
$.ajax({
url: "/restful/request/100",
type: "post",
data:"name=wei&age=21",
dataType: "json",
success: function (json) {
$("#message").text(json.message+":"+json.id);
}
})
})
发现post能正常获取到前端传过来的数据,put请求则不能。why?
涉及到一个历史问题,作为最早的SpringMVC当然是为我们网页服务的,默认网页在表单提交的时候只支持post和get这两种请求,对于put和delete这两种特殊请求是不支持的。但是随着技术的演进,put和delete作为Spring MVC是必须要考虑的。但SpringMvc又不能把put和delete请求的处理方式强塞进原有的代码中,所以SpringMVC做了一个折中的方案:作为put和delete这两种非简单请求,springMVC提供了一个额外的表单内容过滤器来对put和delete进行额外处理。具体写法是:在web.xml中配置表单内容过滤器 见下文
在web.xml添加表单内容过滤器
<filter>
<!--表单内容过滤器 (利用这个过滤器对put和delete请求进行支持)就能支持参数的获取-->
<filter-name>formContentFilter</filter-name>
<filter-class>org.springframework.web.filter.FormContentFilter</filter-class>
</filter>
<!--要增加filter mapping对url进行过滤 (默认对所有请求地址进行过滤)-->
<filter-mapping>
<filter-name>formContentFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
标签:web,请求,Spring,表单,json,MVC,put,delete 来源: https://www.cnblogs.com/wei-7/p/16622427.html