开发环境:Tomcat9.0 
在使用Ajax实现Restful的时候,有时候会出现无法Put、Delete请求参数无法传递到程序中的尴尬情况,此时我们可以有两种解决方案:1、使用地址重写的方法传递参数。2、配置web.xml项目环境。

测试的程序为:

@RequestMapping(value = "/member", method = RequestMethod.PUT, produces = "application/json;charset=UTF-8")
public @ResponseBody Object edit(Member vo1) {
log.info("【*** 修改用户信息 ***】" + vo1);
JSONObject obj = new JSONObject();
obj.put("flag", true);
return obj;
}

一、使用地址重写的方法来实现put、delete请求的参数传递。 
在js页面中(

$(editMember).on("click",function(){
$.ajax({
url : "member?empno=1009&ename=阿伦&sal=19777.77&hiredate=1969-10-10" , // 处理的请求路径
type : "put" , // 此处发送的是PUT请求(可变更为其他需要的请求)
dataType : "json" , // 返回的数据类型为json类型
success : function(data) {
$(showDiv).append("<p>修改处理结果:" + data.flag + "</p>") ;
} ,
error : function(data) {
$(showDiv).append("<p>对不起,出错啦!</p>") ;
}
}) ;
}) ;

二、使用配置文件修改来实现Put和Delete请求的参数传递 
1、解决Put请求的参数传递,但是 无法解决 Delete 请求的传递 
①、在项目中的web.xml文件中配置:

<filter>
<filter-name>HttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

②在js文件中:

$(editBut).on("click",function(){
$.ajax({
url: "member",
type : "put", // 此处发送的是PUT请求
data : {
empno : 1170,
ename : "SMITH",
sal : 11.1,
hiredate : "1991-11-11"
},
success : function(data){
$(showDiv).append("<p> 数据更新成功:"+data.flag+"</p>");
console.log(1);
},
dataType : "json",
error : function(data){
$(showDiv).append("<p>对不起,出错啦!</p>");
}
})
});

2、解决 Put和Delete 请求的参数传递。 
①、在项目中的web.xml文件中配置:

<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<!-- 备注,这边的名称必须和配置'springmvc'的servlet名称一样 -->
<servlet-name>springmvc</servlet-name>
</filter-mapping>

②在js文件中:

$(editBut).on("click",function(){
$.ajax({
url: "member",
type : "post", // 此处发送的是POST请求
data : {
_method : "put", // 将请求转变为PUT请求
empno : 1170,
ename : "SMITH",
sal : 11.1,
hiredate : "11111-11-11"
},
success : function(data){
$(showDiv).append("<p> 数据更新成功:"+data.flag+"</p>");
console.log(1);
},
dataType : "json",
error : function(data){
$(showDiv).append("<p>对不起,出错啦!</p>");
}
})
});

资料汇总--Ajax中Put和Delete请求传递参数无效的解决方法(Restful风格)【转】的更多相关文章

  1. Ajax中Put和Delete请求传递参数无效的解决方法(Restful风格)

    本文装载自:http://blog.csdn.net/u012737182/article/details/52831008    感谢原文作者分享 开发环境:Tomcat9.0 在使用Ajax实现R ...

  2. Node.js中针对中文的查找和替换无效的解决方法

    Node.js中针对中文的查找和替换无效的解决方法.   //tags的值: tag,测试,帖子 var pos1 = tags.indexOf("测"); //这里返回-1 ta ...

  3. php form表单提交时,action url中参数无效的解决方法

    表单提交时get方式的一个错误 <form class="form-inline pull-right" method="get" action=&quo ...

  4. jQuery中hover和blur使用代理delegate无效的解决方法

    今天就遇到了这样的小问题: $(document).ready(function(){ $('.status_on').hover(function(){ $(this).html('点击禁用'); ...

  5. IPhone中H5页面用on绑定click无效的解决方法

    首先声明本人资质尚浅,本文只用于个人总结.如有错误,欢迎指正.共同提高. --------------------------------------------------------------- ...

  6. spring boot:方法中使用try...catch导致@Transactional事务无效的解决(spring boot 2.3.4)

    一,方法中使用try...catch导致@Transactional事务无效的解决方法 1,问题的描述: 如果一个方法添加了@Transactional注解声明事务, 而方法内又使用了try catc ...

  7. 【转】AJAX发送 PUT和DELETE请求注意事项

    jax使用restful服务发送put 和 delete 请求时直接传参会出现问题 一,采用POST  + _method:delete/put  + filter 的方法ajax发送put 和 de ...

  8. AJAX发送 PUT和DELETE请求参数传递注意点,了解一下

    ajax发送put 和 delete 请求时,需要传递参数,如果参数在url地址栏上,则可以正常使用, 如果在 data:中需要传递参数,(浏览器会使用表单提交的方式进行提交) 则需要注意此时应作如下 ...

  9. 解决Spring MVC无法接收AJAX使用PUT与DELETE请求传输的内容

    解决Spring MVC无法接收AJAX使用PUT与DELETE请求传输的内容 解决方案 在 Web.xml文件中 加入以下代码 <!--解决ajax Put与Del请求无法接收到传输的内容-- ...

随机推荐

  1. linux系统编程之信号(四):alarm和可重入函数

    一,alarm() 在将可重入函数之前我们先来了解下alarm()函数使用: #include <unistd.h> unsigned int alarm(unsigned int sec ...

  2. python 实现判断一个用户输入字符串是否是小数的小程序

    要判断一个字符串是否是小数:1先判断小数点的个数,即如果是小数,则必须有且仅有一个'.'号2再分别判断'.'号的左右两边是否是数字: 判断左边时,如果负数,则左边包含'-'号:必须以'-'号开头(校验 ...

  3. ADO.NET系列之Connection对象

    ADO.NET系列之Connection对象 ADO.NET系列之Command对象 ADO.NET系列之DataAdapter对象 ADO.NET系列之事务和调用存储过程 ADO.NET概念 ADO ...

  4. c#开发sqlite

    教程:https://www.cnblogs.com/icebutterfly/p/7850689.html 下载sqlite-netFx40-setup-bundle-x64-2010-1.0.96 ...

  5. jQuery-Load方法

    1.load() 介绍:load() 方法通过 AJAX 请求从服务器加载数据,并把返回的数据放置到指定的元素中 该方法是最简单的从服务器获取数据的方法.它几乎与 $.get(url, data, s ...

  6. LINQ to SQL语句大全

    LINQ to SQL语句大全     LINQ to SQL语句(1)之Where 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判 ...

  7. c# 合并重叠时间段的算法

    c# 合并重叠时间段的算法 一.采用非排序: 方案一: 使用递归算法,如不喜欢递归的伙伴们,可以使用whie代替. 1.文件:Extract_Chao.cs(核心) using System; usi ...

  8. Restframework 权限permission 组件实例-2

    1.在视图类里添加权限组件 class BookView(APIView): authentication_classes = [UserAuth] permission_classes = [SVI ...

  9. 918. Maximum Sum Circular Subarray

    Given a circular array C of integers represented by A, find the maximum possible sum of a non-empty ...

  10. tableView cell 设置圆角 响应链

    1.  tableView的样式必须为 UITableViewStyleGrouped 样式否则cell设置的圆角无效. 2. delegate用weak和assign的区别: A:用weak修饰是为 ...