使用 Ajax 发送的PUT、DELETE请求
一、 方式一:将 POST 请求转化为相应的 PUT 和 DELETE 请求
1. 在 Web.xml 中添加如下配置:用于将 POST 请求转化为相应的 PUT 和 DELETE 请求。
1 <filter> 2 <filter-name>hiddenHttpMethodFilter</filter-name> 3 <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> 4 </filter> 5 <filter-mapping> 6 <filter-name>hiddenHttpMethodFilter</filter-name> 7 <url-pattern>/*</url-pattern> 8 </filter-mapping>
2. 发送 Rest 风格的 Ajax 请求:
① 发送 PUT 请求:
1 $.ajax({ 2 url:"${pageContext.request.contextPath}/emp/" + id, 3 type:"POST", 4 data:$("#empModal form").serialize() + "&_method=PUT", 5 success:function (result) { 6 // 请求成功后的回调函数 7 } 8 });
② 发送 DELETE 请求:只需将 “&_method” 的值改为 “DELETE” 即可。
1 $.ajax({ 2 url:"${pageContext.request.contextPath}/emp/" + id, 3 type:"POST", 4 data:$("#empModal form").serialize() + "&_method=DELETE", 5 success:function (result) { 6 // 请求成功后的回调函数 7 } 8 });
二、方式二:直接发送 PUT 和 DELETE 请求:
1. 在 web.xml 中配置过滤器:
添加该过滤器的原因,可参考:https://www.cnblogs.com/lveyHang/p/11791412.html
1 <filter> 2 <filter-name>httpPutFormContentFilter</filter-name> 3 <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class> 4 </filter> 5 <filter-mapping> 6 <filter-name>httpPutFormContentFilter</filter-name> 7 <url-pattern>/*</url-pattern> 8 </filter-mapping>
2. 发送 Ajax 请求:
① 发送 PUT 请求:
1 $.ajax({ 2 url:"${pageContext.request.contextPath}/emp/" + id, 3 type:"PUT", 4 data:$("#empModal form").serialize(), 5 success:function (result) { 6 // 请求成功后的回调函数 7 } 8 });
② 发送 DELETE 请求:
1 $.ajax({ 2 url:"${pageContext.request.contextPath}/emp/" + id, 3 type:"DELETE", 4 data:$("#empModal form").serialize(), 5 success:function (result) { 6 // 请求成功后的回调函数 7 } 8 });